ipf.h revision 130887
1/*
2 * Copyright (C) 1993-2001 by Darren Reed.
3 *
4 * See the IPFILTER.LICENCE file for details on licencing.
5 *
6 * @(#)ipf.h	1.12 6/5/96
7 * $Id: ipf.h,v 2.9.2.7 2003/05/15 17:45:33 darrenr Exp $
8 */
9
10#ifndef	__IPF_H__
11#define	__IPF_H__
12
13#ifndef	SOLARIS
14#define	SOLARIS	(defined(sun) && (defined(__svr4__) || defined(__SVR4)))
15#endif
16#define	OPT_REMOVE	0x000001
17#define	OPT_DEBUG	0x000002
18#define	OPT_OUTQUE	FR_OUTQUE	/* 0x00004 */
19#define	OPT_INQUE	FR_INQUE	/* 0x00008 */
20#define	OPT_LOG		FR_LOG		/* 0x00010 */
21#define	OPT_SHOWLIST	0x000020
22#define	OPT_VERBOSE	0x000040
23#define	OPT_DONOTHING	0x000080
24#define	OPT_HITS	0x000100
25#define	OPT_BRIEF	0x000200
26#define OPT_ACCNT	FR_ACCOUNT	/* 0x0400 */
27#define	OPT_FRSTATES	FR_KEEPFRAG	/* 0x0800 */
28#define	OPT_IPSTATES	FR_KEEPSTATE	/* 0x1000 */
29#define	OPT_INACTIVE	FR_INACTIVE	/* 0x2000 */
30#define	OPT_SHOWLINENO	0x004000
31#define	OPT_PRINTFR	0x008000
32#define	OPT_ZERORULEST	0x010000
33#define	OPT_SAVEOUT	0x020000
34#define	OPT_AUTHSTATS	0x040000
35#define	OPT_RAW		0x080000
36#define	OPT_NAT		0x100000
37#define	OPT_GROUPS	0x200000
38#define	OPT_STATETOP	0x400000
39#define	OPT_FLUSH	0x800000
40#define	OPT_CLEAR	0x1000000
41#define	OPT_HEX		0x2000000
42#define	OPT_NODO	0x80000000
43
44#define	OPT_STAT	OPT_FRSTATES
45#define	OPT_LIST	OPT_SHOWLIST
46
47
48#ifndef __P
49# ifdef	__STDC__
50#  define	__P(x)	x
51# else
52#  define	__P(x)	()
53# endif
54#endif
55
56struct ipstate;
57struct frpcmp;
58struct ipnat;
59struct nat;
60
61#ifdef	ultrix
62extern	char	*strdup __P((char *));
63#endif
64
65extern	struct	frentry	*parse __P((char *, int, int *));
66
67extern	void	printfr __P((struct frentry *));
68extern	void	binprint __P((struct frentry *)), initparse __P((void));
69extern	int	portnum __P((char *, u_short *, int));
70
71
72struct	ipopt_names	{
73	int	on_value;
74	int	on_bit;
75	int	on_siz;
76	char	*on_name;
77};
78
79
80extern	char	*proto;
81extern	char	flagset[];
82extern	u_char	flags[];
83
84extern	u_char	tcp_flags __P((char *, u_char *, int));
85extern	int	countbits __P((u_32_t));
86extern	int	ratoi __P((char *, int *, int, int));
87extern	int	ratoui __P((char *, u_int *, u_int, u_int));
88extern	int	hostmask __P((char ***, u_32_t *, u_32_t *, u_short *, int *,
89			      u_short *, int));
90extern	int	ports __P((char ***, u_short *, int *, u_short *, int));
91extern	char	*portname __P((int, int));
92extern	u_32_t	buildopts __P((char *, char *, int));
93extern	int	genmask __P((char *, u_32_t *));
94extern	int	hostnum __P((u_32_t *, char *, int));
95extern	u_32_t	optname __P((char ***, u_short *, int));
96extern	void	printpacket __P((ip_t *));
97extern	void	printpacket6 __P((ip_t *));
98extern	void	printportcmp __P((int, struct frpcmp *));
99extern	void	printhostmask __P((int, u_32_t *, u_32_t *));
100extern	void	printbuf __P((char *, int, int));
101extern	char	*hostname __P((int, void *));
102extern	struct ipstate *printstate __P((struct ipstate *, int));
103extern	void	printnat __P((struct ipnat *, int));
104extern	void	printactivenat __P((struct nat *, int));
105
106#if SOLARIS
107extern	int	inet_aton __P((const char *, struct in_addr *));
108extern	int	gethostname __P((char *, int ));
109extern	void	sync __P((void));
110#endif
111
112#if defined(sun) && !SOLARIS
113# define	STRERROR(x)	sys_errlist[x]
114extern	char	*sys_errlist[];
115#else
116# define	STRERROR(x)	strerror(x)
117#endif
118
119#ifndef	MIN
120#define	MIN(a,b)	((a) > (b) ? (b) : (a))
121#endif
122
123#endif /* __IPF_H__ */
124