iptables.h revision 5cd1ff53a500256997519ec1d871750773c44803
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _IPTABLES_USER_H 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _IPTABLES_USER_H 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "xtables.h" 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "iptables_common.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "libiptc/libiptc.h" 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef IPT_LIB_DIR 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPT_LIB_DIR XT_LIB_DIR 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef IPT_SO_GET_REVISION_MATCH /* Old kernel source. */ 1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define IPT_SO_GET_REVISION_MATCH (IPT_BASE_CTL + 2) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPT_SO_GET_REVISION_TARGET (IPT_BASE_CTL + 3) 1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif /* IPT_SO_GET_REVISION_MATCH Old kernel source */ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define iptables_rule_match xtables_rule_match 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define iptables_match xtables_match 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define iptables_target xtables_target 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ipt_tryload xt_tryload 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int line; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Your shared library should call one of these. */ 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern void register_match(struct iptables_match *me); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern void register_target(struct iptables_target *me); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern struct in_addr *dotted_to_addr(const char *dotted); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern struct in_addr *dotted_to_mask(const char *dotted); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern char *addr_to_dotted(const struct in_addr *addrp); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern char *addr_to_anyname(const struct in_addr *addr); 3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)extern char *mask_to_dotted(const struct in_addr *mask); 3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)extern void parse_hostnetworkmask(const char *name, struct in_addr **addrpp, 3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) struct in_addr *maskp, unsigned int *naddrs); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern u_int16_t parse_protocol(const char *s); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int do_command(int argc, char *argv[], char **table, 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) iptc_handle_t *handle); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int delete_chain(const ipt_chainlabel chain, int verbose, 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) iptc_handle_t *handle); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int flush_entries(const ipt_chainlabel chain, int verbose, 4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) iptc_handle_t *handle); 4490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)extern int for_each_chain(int (*fn)(const ipt_chainlabel, int, iptc_handle_t *), 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int verbose, int builtinstoo, iptc_handle_t *handle); 4690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* kernel revision handling */ 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int kernel_version; 4990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)extern void get_kernel_version(void); 5090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define LINUX_VERSION(x,y,z) (0x10000*(x) + 0x100*(y) + z) 5190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define LINUX_VERSION_MAJOR(x) (((x)>>16) & 0xFF) 5290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define LINUX_VERSION_MINOR(x) (((x)>> 8) & 0xFF) 5390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define LINUX_VERSION_PATCH(x) ( (x) & 0xFF) 5490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 5590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif /*_IPTABLES_USER_H*/ 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)