#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)
-# 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;
enum fw3_family family;
enum fw3_table table;
void *handle;
-
- int libc;
- void **libv;
};
-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);