Record device-network relation in state file, fix zone hotplug events
[project/firewall3.git] / options.c
index 47cd7277aa3ac7efa93594398f2331d092086010..26aeefe630014a4bce14f6faa75987e944113772 100644 (file)
--- a/options.c
+++ b/options.c
@@ -203,6 +203,7 @@ fw3_parse_limit(void *ptr, const char *val, bool is_list)
 bool
 fw3_parse_device(void *ptr, const char *val, bool is_list)
 {
+       char *p;
        struct fw3_device dev = { };
 
        if (*val == '*')
@@ -219,6 +220,12 @@ fw3_parse_device(void *ptr, const char *val, bool is_list)
                while (isspace(*++val));
        }
 
+       if ((p = strchr(val, '@')) != NULL)
+       {
+               *p++ = 0;
+               snprintf(dev.network, sizeof(dev.network), "%s", p);
+       }
+
        if (*val)
                snprintf(dev.name, sizeof(dev.name), "%s", val);
        else