summaryrefslogtreecommitdiffstats
path: root/include/xtables/internal.h
diff options
context:
space:
mode:
authorJan Engelhardt <jengelh@medozas.de>2008-04-10 09:18:36 +0200
committerPatrick McHardy <kaber@trash.net>2008-04-13 07:19:22 +0200
commit31558608e77c9712d26c0cb7e97f20e20f459830 (patch)
tree2e5da14d305b2b26b6a2970b9ede09498c3edda7 /include/xtables/internal.h
parent33690a1aec0b6309ff90066ca56285b6e43013f2 (diff)
xtables.h: move non-exported parts to internal.h
Diffstat (limited to 'include/xtables/internal.h')
-rw-r--r--include/xtables/internal.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/include/xtables/internal.h b/include/xtables/internal.h
index 3be72e3d..24a5078b 100644
--- a/include/xtables/internal.h
+++ b/include/xtables/internal.h
@@ -1,6 +1,66 @@
#ifndef _XTABLES_INTERNAL_H
#define _XTABLES_INTERNAL_H 1
+#ifndef XT_LIB_DIR
+# define XT_LIB_DIR "/usr/local/lib/iptables"
+#endif
+
+/* protocol family dependent informations */
+struct afinfo {
+ /* protocol family */
+ int family;
+
+ /* prefix of library name (ex "libipt_" */
+ char *libprefix;
+
+ /* used by setsockopt (ex IPPROTO_IP */
+ int ipproto;
+
+ /* kernel module (ex "ip_tables" */
+ char *kmod;
+
+ /* optname to check revision support of match */
+ int so_rev_match;
+
+ /* optname to check revision support of match */
+ int so_rev_target;
+};
+
+enum xt_tryload {
+ DONT_LOAD,
+ DURING_LOAD,
+ TRY_LOAD,
+ LOAD_MUST_SUCCEED
+};
+
+struct xtables_rule_match {
+ struct xtables_rule_match *next;
+ struct xtables_match *match;
+ /* Multiple matches of the same type: the ones before
+ the current one are completed from parsing point of view */
+ unsigned int completed;
+};
+
+extern char *lib_dir;
+
+extern void *fw_calloc(size_t count, size_t size);
+extern void *fw_malloc(size_t size);
+
+extern const char *modprobe_program;
+extern int xtables_insmod(const char *modname, const char *modprobe, int quiet);
+extern int load_xtables_ko(const char *modprobe, int quiet);
+
+/* This is decleared in ip[6]tables.c */
+extern struct afinfo afinfo;
+
+/* Keeping track of external matches and targets: linked lists. */
+extern struct xtables_match *xtables_matches;
+extern struct xtables_target *xtables_targets;
+
+extern struct xtables_match *find_match(const char *name, enum xt_tryload,
+ struct xtables_rule_match **match);
+extern struct xtables_target *find_target(const char *name, enum xt_tryload);
+
extern void _init(void);
#endif /* _XTABLES_INTERNAL_H */