X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=zones.c;h=b0fcaee265f4bb40f143a2a5e185a9e88180e126;hb=8875f2d067b84a40731983fd495f3e0e4daa493b;hp=55f2e6c105bceb1424c32d81b652d4d395718554;hpb=9d6200d6e3c41dce0fbbbb1a212c027a96f7be14;p=project%2Ffirewall3.git diff --git a/zones.c b/zones.c index 55f2e6c..b0fcaee 100644 --- a/zones.c +++ b/zones.c @@ -132,7 +132,7 @@ resolve_networks(struct uci_element *e, struct fw3_zone *zone) continue; } - tmp->network = net; + snprintf(tmp->network, sizeof(tmp->network), "%s", net->name); list_add_tail(&tmp->list, &zone->devices); } } @@ -530,30 +530,17 @@ fw3_hotplug_zones(struct fw3_state *state, bool add) struct fw3_zone *z; struct fw3_device *d; - if (add) + list_for_each_entry(z, &state->zones, list) { - list_for_each_entry(z, &state->zones, list) + if (add != hasbit(z->flags[0], FW3_FLAG_HOTPLUG)) { - if (!hasbit(z->flags[0], FW3_FLAG_HOTPLUG)) - { - list_for_each_entry(d, &z->devices, list) - fw3_hotplug(add, z, d); + list_for_each_entry(d, &z->devices, list) + fw3_hotplug(add, z, d); + if (add) setbit(z->flags[0], FW3_FLAG_HOTPLUG); - } - } - } - else - { - list_for_each_entry(z, &state->zones, list) - { - if (hasbit(z->flags[0], FW3_FLAG_HOTPLUG)) - { - list_for_each_entry(d, &z->devices, list) - fw3_hotplug(add, z, d); - + else delbit(z->flags[0], FW3_FLAG_HOTPLUG); - } } } }