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)