xref: /csrg-svn/usr.sbin/sendmail/src/conf.h (revision 59348)
19147Seric /*
234920Sbostic  * Copyright (c) 1983 Eric P. Allman
333728Sbostic  * Copyright (c) 1988 Regents of the University of California.
433728Sbostic  * All rights reserved.
533728Sbostic  *
642825Sbostic  * %sccs.include.redist.c%
733728Sbostic  *
8*59348Seric  *	@(#)conf.h	6.23 (Berkeley) 04/27/93
933728Sbostic  */
109147Seric 
1122726Sdist /*
1222726Sdist **  CONF.H -- All user-configurable parameters for sendmail
1322726Sdist */
149147Seric 
1557232Seric # include <sys/param.h>
1658689Seric # include <fcntl.h>
1757232Seric 
189147Seric /*
199147Seric **  Table sizes, etc....
209147Seric **	There shouldn't be much need to change these....
219147Seric */
229147Seric 
2359303Seric # define MAXLINE	2048		/* max line length */
2424945Seric # define MAXNAME	256		/* max length of a name */
259147Seric # define MAXPV		40		/* max # of parms to mailers */
2659303Seric # define MAXATOM	200		/* max atoms per address */
279147Seric # define MAXMAILERS	25		/* maximum mailers known to system */
2857143Seric # define MAXRWSETS	100		/* max # of sets of rewriting rules */
299147Seric # define MAXPRIORITIES	25		/* max values for Precedence: field */
3057143Seric # define MAXMXHOSTS	20		/* max # of MX records */
3152106Seric # define SMTPLINELIM	990		/* maximum SMTP line length */
3257232Seric # define MAXKEY		128		/* maximum size of a database key */
3357232Seric # define MEMCHUNKSIZE	1024		/* chunk size for memory allocation */
3459056Seric # define MAXUSERENVIRON	100		/* max envars saved, must be >= 3 */
3558106Seric # define MAXIPADDR	16		/* max # of IP addrs for this host */
3659303Seric # define PSBUFSIZE	(MAXLINE + MAXATOM)	/* size of prescan buffer */
3757143Seric 
3857143Seric # ifndef QUEUESIZE
3957143Seric # define QUEUESIZE	1000		/* max # of jobs per queue run */
4057143Seric # endif
4157143Seric 
4252107Seric # ifndef FORK
4352107Seric # define FORK		vfork		/* function to call to fork mailer */
4452107Seric # endif
459147Seric 
469147Seric /*
479147Seric **  Compilation options.
4825673Seric **
4925673Seric **	#define these if they are available; comment them out otherwise.
509147Seric */
519147Seric 
5225673Seric # define LOG		1	/* enable logging */
5325673Seric # define UGLYUUCP	1	/* output ugly UUCP From lines */
5458778Seric # define NETINET	1	/* include internet support */
5525673Seric # define SETPROCTITLE	1	/* munge argv to display current status */
5635651Seric # define NAMED_BIND	1	/* use Berkeley Internet Domain Server */
5753735Seric # define MATCHGECOS	1	/* match user names from gecos field */
5836483Sbostic 
5956337Seric # ifdef NEWDB
6056337Seric # define USERDB		1	/* look in user database (requires NEWDB) */
6156823Seric # define BTREE_MAP	1	/* enable BTREE mapping type (requires NEWDB) */
6257143Seric # define HASH_MAP	1	/* enable HASH mapping type (requires NEWDB) */
6356337Seric # endif
6456337Seric 
6556823Seric # ifdef NDBM
6656823Seric # define DBM_MAP	1	/* enable DBM mapping type (requires NDBM) */
6756823Seric # endif
6856823Seric 
6956823Seric /*
7059023Seric **  Operating system configuration.
7159023Seric **
7259023Seric **	Unless you are porting to a new OS, you shouldn't have to
7359023Seric **	change these.
7456823Seric */
7556823Seric 
76*59348Seric # ifdef __hpux
7756823Seric # define SYSTEM5	1
7856823Seric # endif
7956823Seric 
8051918Seric # ifdef SYSTEM5
8155418Seric 
8251918Seric # define LOCKF		1	/* use System V lockf instead of flock */
8355418Seric # define SYS5TZ		1	/* use System V style timezones */
8457943Seric # define HASUNAME	1	/* use System V uname system call */
8555418Seric 
8659074Seric # endif
8759074Seric 
8859023Seric #ifdef sun
8959023Seric # include <vfork.h>
9059023Seric #endif
9159023Seric 
9259287Seric #ifdef _POSIX_VERSION
9359287Seric # define HASSETSID	1	/* has setsid(2) call */
9459287Seric #endif
9559287Seric 
9659288Seric #ifdef NeXT
9759288Seric # define	sleep	sleepX
9859288Seric #endif
9959288Seric 
10059074Seric /*
10159092Seric **  Due to a "feature" in some operating systems such as Ultrix 4.3 and
10259092Seric **  HPUX 8.0, if you receive a "No route to host" message (ICMP message
10359092Seric **  ICMP_UNREACH_HOST) on _any_ connection, all connections to that host
10459092Seric **  are closed.  Some firewalls return this error if you try to connect
10559092Seric **  to the IDENT port (113), so you can't receive email from these hosts
10659092Seric **  on these systems.  The firewall really should use a more specific
10759092Seric **  message such as ICMP_UNREACH_PROTOCOL or _PORT or _NET_PROHIB.
10859074Seric */
10951918Seric 
110*59348Seric #if !defined(ultrix) && !defined(__hpux)
11159074Seric # define IDENTPROTO	1	/* use IDENT proto (RFC 1413) */
11259074Seric #endif
11359074Seric 
11450537Seric /*
11559023Seric **  Remaining definitions should never have to be changed.  They are
11659023Seric **  primarily to provide back compatibility for older systems -- for
11759287Seric **  example, it includes some POSIX compatibility definitions
11859287Seric */
11959023Seric 
12059023Seric /*
12150537Seric **  Older systems don't have this error code -- it should be in
12250537Seric **  /usr/include/sysexits.h.
12350537Seric */
12450537Seric 
12550537Seric # ifndef EX_CONFIG
12650537Seric # define EX_CONFIG	78	/* configuration error */
12750537Seric # endif
12856852Seric 
12956852Seric /*
13058778Seric **  Do some required dependencies
13158778Seric */
13258778Seric 
13358778Seric #if defined(NETINET) || defined(NETISO)
13459107Seric # define SMTP		1	/* enable user and server SMTP */
13559107Seric # define QUEUE		1	/* enable queueing */
13659107Seric # define DAEMON		1	/* include the daemon (requires IPC & SMTP) */
13758778Seric #endif
13858778Seric 
13958778Seric 
14058778Seric /*
14156852Seric **  Arrange to use either varargs or stdargs
14256852Seric */
14356852Seric 
14456852Seric # ifdef __STDC__
14556852Seric 
14656852Seric # include <stdarg.h>
14756852Seric 
14856852Seric # define VA_LOCAL_DECL	va_list ap;
14956852Seric # define VA_START(f)	va_start(ap, f)
15056852Seric # define VA_END		va_end(ap)
15156852Seric 
15256852Seric # else
15356852Seric 
15456852Seric # include <varargs.h>
15556852Seric 
15656852Seric # define VA_LOCAL_DECL	va_list ap;
15756852Seric # define VA_START(f)	va_start(ap)
15856852Seric # define VA_END		va_end(ap)
15956852Seric 
16056852Seric # endif
16157631Seric 
16257943Seric #ifdef HASUNAME
16357631Seric # include <sys/utsname.h>
16457631Seric # ifdef newstr
16557631Seric #  undef newstr
16657631Seric # endif
16757943Seric #else /* ! HASUNAME */
16857631Seric # define NODE_LENGTH 32
16957631Seric struct utsname
17057631Seric {
17157631Seric 	char nodename[NODE_LENGTH+1];
17257631Seric };
17357943Seric #endif /* HASUNAME */
17457642Seric 
17557735Seric #ifndef MAXHOSTNAMELEN
17657735Seric #define MAXHOSTNAMELEN	256
17757735Seric #endif
17858153Seric 
17958153Seric #if !defined(SIGCHLD) && defined(SIGCLD)
18058153Seric # define SIGCHLD	SIGCLD
18158153Seric #endif
18258153Seric 
18358153Seric #ifndef STDIN_FILENO
18458153Seric #define STDIN_FILENO	0
18558153Seric #endif
18658153Seric 
18758153Seric #ifndef STDOUT_FILENO
18858153Seric #define STDOUT_FILENO	1
18958153Seric #endif
19058153Seric 
19158153Seric #ifndef STDERR_FILENO
19258153Seric #define STDERR_FILENO	2
19358153Seric #endif
19458689Seric 
19558689Seric #ifdef LOCKF
19658689Seric #define LOCK_SH		0x01	/* shared lock */
19758689Seric #define LOCK_EX		0x02	/* exclusive lock */
19858689Seric #define LOCK_NB		0x04	/* non-blocking lock */
19958692Seric 
20058692Seric #else
20158692Seric 
20258692Seric # include <sys/file.h>
20358692Seric 
20458689Seric #endif
20558702Seric 
20658702Seric /*
20758702Seric **  Size of tobuf (deliver.c)
20858702Seric **	Tweak this to match your syslog implementation.  It will have to
20958702Seric **	allow for the extra information printed.
21058702Seric */
21158702Seric 
21258702Seric #ifndef TOBUFSIZE
21358702Seric # define TOBUFSIZE (1024 - 256)
21458702Seric #endif
215