zones: add interface/subnet bound LOG rules
[project/firewall3.git] / iptables.h
index bcd302d..8ec7add 100644 (file)
 #ifndef __FW3_IPTABLES_H
 #define __FW3_IPTABLES_H
 
-#include <libiptc/libiptc.h>
-#include <libiptc/libip6tc.h>
-#include <xtables.h>
-
-#include <dlfcn.h>
-#include <unistd.h>
-#include <getopt.h>
-#include <sys/utsname.h>
-
-#include "options.h"
-
-#define FW3_ID_MAGIC   0x66773300      /* 'f' 'w' '3' */
-#define FW3_ID_MASK            0xffffff00
-
-/* xtables interface */
-#if (XTABLES_VERSION_CODE == 10 || XTABLES_VERSION_CODE == 11)
-# include "xtables-10.h"
-#elif (XTABLES_VERSION_CODE == 5)
-# include "xtables-5.h"
-#else
-# error "Unsupported xtables version"
-#endif
-
+#ifndef DISABLE_STATIC_EXTENSIONS
 /* libipt*ext.so interfaces */
 extern void init_extensions(void);
 extern void init_extensions4(void);
 extern void init_extensions6(void);
+#else
+static inline void init_extensions(void) { }
+static inline void init_extensions4(void) { }
+static inline void init_extensions6(void) { }
+#endif
 
 /* Required by certain extensions like SNAT and DNAT */
 extern int kernel_version;
@@ -57,25 +40,7 @@ struct fw3_ipt_handle {
        void *handle;
 };
 
-struct fw3_ipt_rule {
-       struct fw3_ipt_handle *h;
-
-       union {
-               struct ipt_entry e;
-               struct ip6t_entry e6;
-       };
-
-       struct xtables_rule_match *matches;
-       struct xtables_target *target;
-
-       int id;
-
-       int argc;
-       char **argv;
-
-       uint32_t protocol;
-       bool protocol_loaded;
-};
+struct fw3_ipt_rule;
 
 struct fw3_ipt_handle *fw3_ipt_open(enum fw3_family family,
                                     enum fw3_table table);
@@ -122,6 +87,8 @@ void fw3_ipt_rule_limit(struct fw3_ipt_rule *r, struct fw3_limit *limit);
 
 void fw3_ipt_rule_ipset(struct fw3_ipt_rule *r, struct fw3_setmatch *match);
 
+void fw3_ipt_rule_helper(struct fw3_ipt_rule *r, struct fw3_cthelpermatch *match);
+
 void fw3_ipt_rule_time(struct fw3_ipt_rule *r, struct fw3_time *time);
 
 void fw3_ipt_rule_mark(struct fw3_ipt_rule *r, struct fw3_mark *mark);
@@ -162,7 +129,4 @@ fw3_ipt_rule_target(struct fw3_ipt_rule *r, const char *fmt, ...)
        fw3_ipt_rule_addarg(r, false, "-j", buf);
 }
 
-void xtables_register_match(struct xtables_match *me);
-void xtables_register_target(struct xtables_target *me);
-
 #endif