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