unify object freeing
[project/firewall3.git] / zones.h
diff --git a/zones.h b/zones.h
index 8537af7..84619c2 100644 (file)
--- a/zones.h
+++ b/zones.h
 
 #include "options.h"
 
 
 #include "options.h"
 
+extern const struct fw3_option fw3_zone_opts[];
+
+struct fw3_zone * fw3_alloc_zone(void);
+
 void fw3_load_zones(struct fw3_state *state, struct uci_package *p);
 
 void fw3_print_zone_chains(enum fw3_table table, enum fw3_family family,
 void fw3_load_zones(struct fw3_state *state, struct uci_package *p);
 
 void fw3_print_zone_chains(enum fw3_table table, enum fw3_family family,
@@ -29,8 +33,13 @@ void fw3_print_zone_chains(enum fw3_table table, enum fw3_family family,
 void fw3_print_zone_rules(enum fw3_table table, enum fw3_family family,
                           struct fw3_state *state);
 
 void fw3_print_zone_rules(enum fw3_table table, enum fw3_family family,
                           struct fw3_state *state);
 
-struct fw3_zone * fw3_lookup_zone(struct fw3_state *state, const char *name);
+void fw3_flush_zones(enum fw3_table table, enum fw3_family family,
+                     bool pass2, struct fw3_state *state);
+
+struct fw3_zone * fw3_lookup_zone(struct fw3_state *state, const char *name,
+                                  bool running);
 
 
-void fw3_free_zone(struct fw3_zone *zone);
+#define fw3_free_zone(zone) \
+       fw3_free_object(zone, fw3_zone_opts)
 
 #endif
 
 #endif