#include <uci.h>
-#define FW3_STATEFILE "/var/run/fw3.lock"
+#define FW3_STATEFILE "/var/run/fw3.state"
+#define FW3_LOCKFILE "/var/run/fw3.lock"
void warn_elem(struct uci_element *e, const char *format, ...);
void warn(const char *format, ...);
bool fw3_has_table(bool ipv6, const char *table);
-bool fw3_check_statefile(bool test_exists);
-void fw3_remove_statefile(void);
-void fw3_close_statefile(void);
+bool fw3_lock(void);
+void fw3_unlock(void);
+
+bool fw3_has_state(void);
+void fw3_write_state(void *state);
+void fw3_remove_state(void);
+
+
+enum fw3_statefile_type
+{
+ FW3_TYPE_DEFAULTS = 0,
+ FW3_TYPE_ZONE = 1,
+ FW3_TYPE_IPSET = 2,
+};
+
+struct fw3_statefile_entry
+{
+ struct list_head list;
+ enum fw3_statefile_type type;
+ const char *name;
+ uint32_t flags[2];
+};
+
+struct list_head * fw3_read_state(void);
+void fw3_free_state(struct list_head *statefile);
#endif