selectively delete chains in filter and nat tables
[project/firewall3.git] / ipsets.c
index 3d659e2c03039bdb7dc591536e102433ea082626..215be73605bbfe289d5840ec7df189ccabe5412b 100644 (file)
--- a/ipsets.c
+++ b/ipsets.c
@@ -351,27 +351,22 @@ fw3_create_ipsets(struct fw3_state *state)
 }
 
 void
-fw3_destroy_ipsets(struct fw3_state *state)
+fw3_destroy_ipsets(struct list_head *statefile)
 {
-       struct fw3_ipset *ipset;
-
-       if (state->disable_ipsets)
-               return;
+       struct fw3_statefile_entry *e;
 
        info("Destroying ipsets ...");
 
-       list_for_each_entry(ipset, &state->ipsets, list)
+       list_for_each_entry(e, statefile, list)
        {
-               if (ipset->external && *ipset->external)
+               if (e->type != FW3_TYPE_IPSET)
                        continue;
 
-               info(" * %s", ipset->name);
+               info(" * %s", e->name);
 
-               fw3_pr("flush %s\n", ipset->name);
-               fw3_pr("destroy %s\n", ipset->name);
+               fw3_pr("flush %s\n", e->name);
+               fw3_pr("destroy %s\n", e->name);
        }
-
-       fw3_pr("quit\n");
 }
 
 void