ipf.h revision 60841
1963Sats/*
24435Sgibbs * Copyright (C) 1993-2000 by Darren Reed.
38876Srgrimes *
4963Sats * Redistribution and use in source and binary forms are permitted
54435Sgibbs * provided that this notice is preserved and due credit is given
64435Sgibbs * to the original author and the contributors.
74435Sgibbs *
84435Sgibbs * @(#)ipf.h	1.12 6/5/96
913765Smpp * $Id: ipf.h,v 2.9.2.2 2000/05/06 11:20:20 darrenr Exp $
108876Srgrimes */
114435Sgibbs
124435Sgibbs#ifndef	__IPF_H__
134435Sgibbs#define	__IPF_H__
144435Sgibbs
154435Sgibbs#ifndef	SOLARIS
164435Sgibbs#define	SOLARIS	(defined(sun) && (defined(__svr4__) || defined(__SVR4)))
174435Sgibbs#endif
184435Sgibbs#define	OPT_REMOVE	0x000001
194435Sgibbs#define	OPT_DEBUG	0x000002
204435Sgibbs#define	OPT_OUTQUE	FR_OUTQUE	/* 0x00004 */
218876Srgrimes#define	OPT_INQUE	FR_INQUE	/* 0x00008 */
2250477Speter#define	OPT_LOG		FR_LOG		/* 0x00010 */
237510Sjkh#define	OPT_SHOWLIST	0x000020
244435Sgibbs#define	OPT_VERBOSE	0x000040
254435Sgibbs#define	OPT_DONOTHING	0x000080
2651673Smdodd#define	OPT_HITS	0x000100
2751673Smdodd#define	OPT_BRIEF	0x000200
2816374Snate#define OPT_ACCNT	FR_ACCOUNT	/* 0x0400 */
2951673Smdodd#define	OPT_FRSTATES	FR_KEEPFRAG	/* 0x0800 */
3051673Smdodd#define	OPT_IPSTATES	FR_KEEPSTATE	/* 0x1000 */
3116374Snate#define	OPT_INACTIVE	FR_INACTIVE	/* 0x2000 */
3216374Snate#define	OPT_SHOWLINENO	0x004000
334435Sgibbs#define	OPT_PRINTFR	0x008000
344435Sgibbs#define	OPT_ZERORULEST	0x010000
354435Sgibbs#define	OPT_SAVEOUT	0x020000
364435Sgibbs#define	OPT_AUTHSTATS	0x040000
374435Sgibbs#define	OPT_RAW		0x080000
38117700Smarkm#define	OPT_NAT		0x100000
3930398Sitojun#define	OPT_GROUPS	0x200000
404435Sgibbs#define	OPT_STATETOP	0x400000
414435Sgibbs#define	OPT_FLUSH	0x800000
424435Sgibbs#define	OPT_CLEAR	0x1000000
434435Sgibbs#define	OPT_NODO	0x80000000
444435Sgibbs
4514259Sgibbs#define	OPT_STAT	OPT_FRSTATES
464435Sgibbs#define	OPT_LIST	OPT_SHOWLIST
474435Sgibbs
484435Sgibbs
494435Sgibbs#ifndef __P
504435Sgibbs# ifdef	__STDC__
514435Sgibbs#  define	__P(x)	x
524435Sgibbs# else
534435Sgibbs#  define	__P(x)	()
544435Sgibbs# endif
554435Sgibbs#endif
564435Sgibbs
574435Sgibbsstruct frpcmp;
584435Sgibbs
594435Sgibbs#ifdef	ultrix
604435Sgibbsextern	char	*strdup __P((char *));
614435Sgibbs#endif
62121492Simp
63121492Simpextern	struct	frentry	*parse __P((char *, int));
644435Sgibbs
65963Satsextern	void	printfr __P((struct frentry *));
664435Sgibbsextern	void	binprint __P((struct frentry *)), initparse __P((void));
67963Satsextern	int	portnum __P((char *, u_short *, int));
6813765Smpp
69963Sats
70963Satsstruct	ipopt_names	{
71963Sats	int	on_value;
72963Sats	int	on_bit;
73963Sats	int	on_siz;
74963Sats	char	*on_name;
75963Sats};
76963Sats
77117700Smarkm
78117700Smarkmextern	char	*proto;
79117700Smarkmextern	char	flagset[];
80963Satsextern	u_char	flags[];
81963Sats
82117700Smarkmextern	u_char	tcp_flags __P((char *, u_char *, int));
83117700Smarkmextern	int	countbits __P((u_32_t));
844435Sgibbsextern	int	ratoi __P((char *, int *, int, int));
8554201Smdoddextern	int	ratoui __P((char *, u_int *, u_int, u_int));
8654201Smdoddextern	int	hostmask __P((char ***, u_32_t *, u_32_t *, u_short *, int *,
8754201Smdodd			      u_short *, int));
8854201Smdoddextern	int	ports __P((char ***, u_short *, int *, u_short *, int));
8954201Smdoddextern	char	*portname __P((int, int));
9054201Smdoddextern	u_32_t	buildopts __P((char *, char *, int));
9154201Smdoddextern	int	genmask __P((char *, u_32_t *));
92117700Smarkmextern	int	hostnum __P((u_32_t *, char *, int));
93117700Smarkmextern	u_32_t	optname __P((char ***, u_short *, int));
9454201Smdoddextern	void	printpacket __P((ip_t *));
9554201Smdoddextern	void	printportcmp __P((int, struct frpcmp *));
9654201Smdoddextern	void	printhostmask __P((int, u_32_t *, u_32_t *));
97117700Smarkmextern	void	printbuf __P((char *, int, int));
98117700Smarkm#if SOLARIS
99117700Smarkmextern	int	inet_aton __P((const char *, struct in_addr *));
100117700Smarkmextern	int	gethostname __P((char *, int ));
101117700Smarkmextern	void	sync __P((void));
102117700Smarkm#endif
103117700Smarkm
10454201Smdodd#if defined(sun) && !SOLARIS
105117700Smarkm# define	STRERROR(x)	sys_errlist[x]
106117700Smarkmextern	char	*sys_errlist[];
107117700Smarkm#else
108117700Smarkm# define	STRERROR(x)	strerror(x)
109117700Smarkm#endif
110963Sats
11154201Smdodd#ifndef	MIN
11254201Smdodd#define	MIN(a,b)	((a) > (b) ? (b) : (a))
113963Sats#endif
114963Sats
115963Sats#endif /* __IPF_H__ */
116963Sats