iptables: fix regression with unintended free in need_protomatch
[project/firewall3.git] / utils.h
diff --git a/utils.h b/utils.h
index c8ab0e5b0b91d82884880a6f8e528647279a08a1..5b17a2d75567a2e192a9b95226c1fd0cfbcae024 100644 (file)
--- a/utils.h
+++ b/utils.h
 
 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 {                                                                    \
@@ -94,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);
@@ -120,4 +128,7 @@ bool fw3_attr_parse_name_type(struct blob_attr *entry, const char **name, const
 
 const char * fw3_protoname(void *proto);
 
+bool fw3_check_loopback_dev(const char *name);
+
+bool fw3_check_loopback_addr(struct fw3_address *addr);
 #endif