Remove unused "running" argument form fw3_lookup_zone()
[project/firewall3.git] / ipsets.c
index a720172..ecccd69 100644 (file)
--- a/ipsets.c
+++ b/ipsets.c
@@ -20,6 +20,8 @@
 
 
 const struct fw3_option fw3_ipset_opts[] = {
+       FW3_OPT("enabled",       bool,           ipset,     enabled),
+
        FW3_OPT("name",          string,         ipset,     name),
        FW3_OPT("family",        family,         ipset,     family),
 
@@ -294,7 +296,7 @@ create_ipset(struct fw3_ipset *ipset, struct fw3_state *state)
        if (ipset->external && *ipset->external)
                return;
 
-       info("Creating ipset %s", ipset->name);
+       info(" * Creating ipset %s", ipset->name);
 
        first = true;
        fw3_pr("create %s %s", ipset->name, methods[ipset->method]);
@@ -351,8 +353,6 @@ create_ipset(struct fw3_ipset *ipset, struct fw3_state *state)
                fw3_pr(" hashsize %u", ipset->hashsize);
 
        fw3_pr("\n");
-
-       fw3_set_running(ipset, &state->running_ipsets);
 }
 
 void
@@ -364,34 +364,28 @@ fw3_create_ipsets(struct fw3_state *state)
                return;
 
        list_for_each_entry(ipset, &state->ipsets, list)
-               if (!fw3_lookup_ipset(state, ipset->name, true))
-                       create_ipset(ipset, state);
+               if (!hasbit(ipset->flags[0], FW3_FLAG_DELETED))
+                       if (!fw3_lookup_ipset(state, ipset->name, true))
+                               create_ipset(ipset, state);
 
        fw3_pr("quit\n");
 }
 
 void
-fw3_destroy_ipsets(struct fw3_state *state)
+fw3_destroy_ipsets(struct fw3_state *state, enum fw3_family family)
 {
        struct fw3_ipset *s, *tmp;
-       int mask = (1 << FW3_FAMILY_V4) | (1 << FW3_FAMILY_V6);
 
-       list_for_each_entry_safe(s, tmp, &state->running_ipsets, running_list)
+       list_for_each_entry_safe(s, tmp, &state->ipsets, list)
        {
-               if (!hasbit(state->defaults.flags, FW3_FAMILY_V4))
-                       delbit(s->flags, FW3_FAMILY_V4);
-
-               if (!hasbit(state->defaults.flags, FW3_FAMILY_V6))
-                       delbit(s->flags, FW3_FAMILY_V6);
+               del(s->flags, family, family);
 
-               if (!(s->flags & mask))
+               if (fw3_no_family(s->flags[family == FW3_FAMILY_V6]))
                {
-                       info("Deleting ipset %s", s->name);
+                       info(" * Deleting ipset %s", s->name);
 
                        fw3_pr("flush %s\n", s->name);
                        fw3_pr("destroy %s\n", s->name);
-
-                       fw3_set_running(s, NULL);
                }
        }
 }
@@ -409,10 +403,7 @@ fw3_lookup_ipset(struct fw3_state *state, const char *name, bool running)
                if (strcmp(s->name, name))
                        continue;
 
-               if (!running || s->running_list.next)
-                       return s;
-
-               break;
+               return s;
        }
 
        return NULL;