/*	Compile-time configuration options for OpenFWTK and TIS FWTK
 *	legacy proxies - see notes in auth.h, those apply to this file too.
 */
/*	Original file in TIS firewall toolkit:
 *	Author: Marcus J. Ranum, Trusted Information Systems, Inc.
 */

#ifndef	_INCL_FWALL_H


#define	FWTK_VERSION		"OpenFWTK project"
#define	FWTK_VERSION_MINOR	"V2.0"

#ifndef	PERMFILE
#define	PERMFILE	PREFIX"/etc/netperm-table"
#endif

#define PROXY_TIMEOUT 60*60*2

/*
Define max size of netperm-table entry, including continuation lines
*/
#define MAX_CFG_ENTRY 4096

/*
Define max size of general purpose string buffer, i.e. used in text protocol
command stream 
*/

#define MAX_STR 1024

/*
Define max tokenized arg count
*/
#define MAX_ARG 256

/*
Define max fqdn or ip address string size
*/

#define MAX_HOSTNAME 512

#ifndef	LLEV
#define	LLEV	LOG_NOTICE
#endif

#ifndef	LFAC
#define	LFAC	LOG_DAEMON
#endif

/*
Define one or the other of the below for locking.
LOCK_FLOCK enables flock() style locking, LOCK_LOCKF
enables lockf() style locking.
The locking primitives are implemented in lib/lock.c
*/
#if defined(SYSV) || defined (HPUX) || defined(SCO5) || defined(AIX)
#define LOCK_LOCKF
#else
#define	LOCK_FLOCK
#endif


/*
Define one or the other of the below to choose your
method for interrupt driven out of band signalling on
a socket. Most BSD systems will use F_SETOWN. hp/ux
and others may use SIOCSPGRP.
This primitive is implemented in lib/urg.c
*/
#if !defined(HPUX) && !defined(SCO5)
#define	USE_F_SETOWN
#else
#define	USE_SIOCSPGRP 
#endif

/*
Setsid() is used in the daemon() routine for
smapd. If your system has setsid() from POSIX
leave HAVE_SETSID defined, otherwise you may need to
add system dependent code to disassociate from the
terminal to lib/daemon.c
*/
#define		HAVE_SETSID


/*
----------------End Configuration Section----------------
*/

/* record used for permissions file entry */
typedef	struct	cfgrec	{
	int	flags;		/* see below */
	int	ln;		/* line# in config file */
	char	*op;		/* facility name */
	int	argc;		/* number of arguments */
	char	**argv;		/* vector */
	struct	cfgrec	*next;
} Cfg;
Cfg	*cfg_read();
Cfg	*cfg_get();
#define	PERM_ALLOW	01
#define	PERM_DENY	02

#ifdef __GNUC__
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
#define ATTR_UNUSED    __attribute__ ((__unused__))
#define ATTR_NORETURN    __attribute__ ((__noreturn__))
#endif
#else
#define ATTR_UNUSED
#if (__HP_aCC >= 60000 || __HP_cc >= 60000) && defined(__ia64)
#define ATTR_NORETURN    __attribute__ ((noreturn))
#else
#define ATTR_NORETURN
#endif
#endif

#ifndef EX_CONFIG
#define EX_CONFIG       78 
#endif

#define	_INCL_FWALL_H
#endif
