#ifndef _IPTABLES_USER_H #define _IPTABLES_USER_H #include "xtables.h" #include "libiptc/libiptc.h" #ifndef IPT_LIB_DIR #define IPT_LIB_DIR XT_LIB_DIR #endif #ifndef IPT_SO_GET_REVISION_MATCH /* Old kernel source. */ #define IPT_SO_GET_REVISION_MATCH (IPT_BASE_CTL + 2) #define IPT_SO_GET_REVISION_TARGET (IPT_BASE_CTL + 3) #endif /* IPT_SO_GET_REVISION_MATCH Old kernel source */ #define iptables_rule_match xtables_rule_match #define iptables_match xtables_match #define iptables_target xtables_target #define ipt_tryload xt_tryload extern int line; /* Your shared library should call one of these. */ extern void register_match(struct iptables_match *me); extern void register_target(struct iptables_target *me); extern struct in_addr *dotted_to_addr(const char *dotted); extern struct in_addr *dotted_to_mask(const char *dotted); extern char *addr_to_dotted(const struct in_addr *addrp); extern char *addr_to_anyname(const struct in_addr *addr); extern char *mask_to_dotted(const struct in_addr *mask); extern void parse_hostnetworkmask(const char *name, struct in_addr **addrpp, struct in_addr *maskp, unsigned int *naddrs); extern u_int16_t parse_protocol(const char *s); extern int do_command(int argc, char *argv[], char **table, iptc_handle_t *handle); extern int delete_chain(const ipt_chainlabel chain, int verbose, iptc_handle_t *handle); extern int flush_entries(const ipt_chainlabel chain, int verbose, iptc_handle_t *handle); extern int for_each_chain(int (*fn)(const ipt_chainlabel, int, iptc_handle_t *), int verbose, int builtinstoo, iptc_handle_t *handle); /* kernel revision handling */ extern int kernel_version; extern void get_kernel_version(void); #define LINUX_VERSION(x,y,z) (0x10000*(x) + 0x100*(y) + z) #define LINUX_VERSION_MAJOR(x) (((x)>>16) & 0xFF) #define LINUX_VERSION_MINOR(x) (((x)>> 8) & 0xFF) #define LINUX_VERSION_PATCH(x) ( (x) & 0xFF) #endif /*_IPTABLES_USER_H*/