Make nat reflection src address configurable by introducing a reflection_src paramete...
[project/firewall3.git] / ipsets.h
index 5ad6d99..186a417 100644 (file)
--- a/ipsets.h
+++ b/ipsets.h
 #include "options.h"
 #include "utils.h"
 
-enum fw3_ipset_opts {
-       FW3_IPSET_OPT_IPRANGE   = (1 << 0),
-       FW3_IPSET_OPT_PORTRANGE = (1 << 1),
-       FW3_IPSET_OPT_NETMASK   = (1 << 2),
-       FW3_IPSET_OPT_HASHSIZE  = (1 << 3),
-       FW3_IPSET_OPT_MAXELEM   = (1 << 4),
-       FW3_IPSET_OPT_FAMILY    = (1 << 5),
-};
-
-struct fw3_ipset_settype {
-       enum fw3_ipset_method method;
-       uint32_t types;
-       uint8_t required;
-       uint8_t optional;
-};
+extern const struct fw3_option fw3_ipset_opts[];
 
+struct fw3_ipset * fw3_alloc_ipset(void);
 void fw3_load_ipsets(struct fw3_state *state, struct uci_package *p);
 void fw3_create_ipsets(struct fw3_state *state);
-void fw3_destroy_ipsets(struct fw3_state *state);
+void fw3_destroy_ipsets(struct fw3_state *state, enum fw3_family family);
 
-void fw3_free_ipset(struct fw3_ipset *ipset);
+struct fw3_ipset * fw3_lookup_ipset(struct fw3_state *state, const char *name,
+                                    bool running);
 
-struct fw3_ipset * fw3_lookup_ipset(struct fw3_state *state, const char *name);
+#define fw3_free_ipset(ipset) \
+       fw3_free_object(ipset, fw3_ipset_opts)
 
 #endif