iptables: fix regression with unintended free in need_protomatch
[project/firewall3.git] / utils.h
diff --git a/utils.h b/utils.h
index 98e1eec937333e688110c6b51c57d208931f73dd..5b17a2d75567a2e192a9b95226c1fd0cfbcae024 100644 (file)
--- a/utils.h
+++ b/utils.h
 #include <sys/file.h>
 #include <sys/types.h>
 #include <ifaddrs.h>
+#include <netdb.h>
 
 #include <libubox/list.h>
+#include <libubox/blob.h>
 #include <uci.h>
 
 
 #define FW3_STATEFILE  "/var/run/fw3.state"
 #define FW3_LOCKFILE   "/var/run/fw3.lock"
+#define FW3_HELPERCONF "/usr/share/fw3/helpers.conf"
 #define FW3_HOTPLUG     "/sbin/hotplug-call"
 
 extern bool fw3_pr_debug;
 
-void warn_elem(struct uci_element *e, const char *format, ...);
-void warn(const char *format, ...);
-void error(const char *format, ...);
-void info(const char *format, ...);
+struct fw3_address;
 
+void warn_elem(struct uci_element *e, const char *format, ...)
+       __attribute__ ((format (printf, 2, 3)));
+void warn(const char *format, ...)
+       __attribute__ ((format (printf, 1, 2)));
+void error(const char *format, ...)
+       __attribute__ ((format (printf, 1, 2)));
+void info(const char *format, ...)
+       __attribute__ ((format (printf, 1, 2)));
 
 #define warn_section(t, r, e, fmt, ...)                                        \
        do {                                                                    \
@@ -91,12 +99,15 @@ bool __fw3_command_pipe(bool silent, const char *command, ...);
 #define fw3_command_pipe(...) __fw3_command_pipe(__VA_ARGS__, NULL)
 
 void fw3_command_close(void);
-void fw3_pr(const char *fmt, ...);
+void fw3_pr(const char *fmt, ...)
+       __attribute__ ((format (printf, 1, 2)));
 
-bool fw3_has_table(bool ipv6, const char *table);
+bool fw3_has_target(const bool ipv6, const char *target);
 
 bool fw3_lock(void);
 void fw3_unlock(void);
+bool fw3_lock_path(int *fw3_lock_fd, const char *path);
+void fw3_unlock_path(int *fw3_lock_fd, const char *path);
 
 
 void fw3_write_statefile(void *state);
@@ -113,4 +124,11 @@ bool fw3_bitlen2netmask(int family, int bits, void *mask);
 
 void fw3_flush_conntrack(void *zone);
 
+bool fw3_attr_parse_name_type(struct blob_attr *entry, const char **name, const char **type);
+
+const char * fw3_protoname(void *proto);
+
+bool fw3_check_loopback_dev(const char *name);
+
+bool fw3_check_loopback_addr(struct fw3_address *addr);
 #endif