xref: /csrg-svn/usr.sbin/sendmail/src/conf.h (revision 64562)
19147Seric /*
234920Sbostic  * Copyright (c) 1983 Eric P. Allman
362522Sbostic  * Copyright (c) 1988, 1993
462522Sbostic  *	The Regents of the University of California.  All rights reserved.
533728Sbostic  *
642825Sbostic  * %sccs.include.redist.c%
733728Sbostic  *
8*64562Seric  *	@(#)conf.h	8.35 (Berkeley) 09/22/93
933728Sbostic  */
109147Seric 
1122726Sdist /*
1222726Sdist **  CONF.H -- All user-configurable parameters for sendmail
1322726Sdist */
149147Seric 
1557232Seric # include <sys/param.h>
1659389Seric # include <sys/stat.h>
1764380Seric # include <sys/file.h>
1864500Seric # include <sys/wait.h>
1958689Seric # include <fcntl.h>
2064035Seric # include <signal.h>
2157232Seric 
2263902Seric /**********************************************************************
239147Seric **  Table sizes, etc....
249147Seric **	There shouldn't be much need to change these....
2563902Seric **********************************************************************/
269147Seric 
2759303Seric # define MAXLINE	2048		/* max line length */
2824945Seric # define MAXNAME	256		/* max length of a name */
299147Seric # define MAXPV		40		/* max # of parms to mailers */
3059303Seric # define MAXATOM	200		/* max atoms per address */
319147Seric # define MAXMAILERS	25		/* maximum mailers known to system */
3257143Seric # define MAXRWSETS	100		/* max # of sets of rewriting rules */
339147Seric # define MAXPRIORITIES	25		/* max values for Precedence: field */
3457143Seric # define MAXMXHOSTS	20		/* max # of MX records */
3552106Seric # define SMTPLINELIM	990		/* maximum SMTP line length */
3657232Seric # define MAXKEY		128		/* maximum size of a database key */
3757232Seric # define MEMCHUNKSIZE	1024		/* chunk size for memory allocation */
3859056Seric # define MAXUSERENVIRON	100		/* max envars saved, must be >= 3 */
3959667Seric # define MAXALIASDB	12		/* max # of alias databases */
4059303Seric # define PSBUFSIZE	(MAXLINE + MAXATOM)	/* size of prescan buffer */
4157143Seric 
4257143Seric # ifndef QUEUESIZE
4357143Seric # define QUEUESIZE	1000		/* max # of jobs per queue run */
4457143Seric # endif
4557143Seric 
4663902Seric /**********************************************************************
479147Seric **  Compilation options.
4825673Seric **
4925673Seric **	#define these if they are available; comment them out otherwise.
5063902Seric **********************************************************************/
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 */
5863753Seric # define XDEBUG		1	/* enable extended debugging */
5936483Sbostic 
6056337Seric # ifdef NEWDB
6156337Seric # define USERDB		1	/* look in user database (requires NEWDB) */
6256337Seric # endif
6356337Seric 
6464032Seric /*
6564032Seric **  Due to a "feature" in some operating systems such as Ultrix 4.3 and
6664032Seric **  HPUX 8.0, if you receive a "No route to host" message (ICMP message
6764032Seric **  ICMP_UNREACH_HOST) on _any_ connection, all connections to that host
6864032Seric **  are closed.  Some firewalls return this error if you try to connect
6964032Seric **  to the IDENT port (113), so you can't receive email from these hosts
7064032Seric **  on these systems.  The firewall really should use a more specific
7164032Seric **  message such as ICMP_UNREACH_PROTOCOL or _PORT or _NET_PROHIB.  This
7264032Seric **  will get #undefed below as needed.
7364032Seric */
7464032Seric 
7564032Seric # define IDENTPROTO	1	/* use IDENT proto (RFC 1413) */
7664032Seric 
7763902Seric /**********************************************************************
7859023Seric **  Operating system configuration.
7959023Seric **
8059023Seric **	Unless you are porting to a new OS, you shouldn't have to
8159023Seric **	change these.
8263902Seric **********************************************************************/
8356823Seric 
8463787Seric /*
8563787Seric **  Per-Operating System defines
8663787Seric */
8763787Seric 
8864314Seric 
8963902Seric /*
9063902Seric **  HP-UX -- tested for 8.07
9163902Seric */
9263902Seric 
9359348Seric # ifdef __hpux
9463787Seric # define SYSTEM5	1	/* include all the System V defines */
9564035Seric # define HASINITGROUPS	1	/* has initgroups(3) call */
9664314Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
9764035Seric # define HASSETREUID	1	/* has setreuid(2) call */
9863902Seric # define setreuid(r, e)		setresuid(r, e, -1)
9963962Seric # define LA_TYPE	LA_FLOAT
10063962Seric # define _PATH_UNIX	"/hp-ux"
10164358Seric # undef IDENTPROTO		/* TCP/IP implementation is broken */
10256823Seric # endif
10356823Seric 
10464314Seric 
10563902Seric /*
10663902Seric **  IBM AIX 3.x -- actually tested for 3.2.3
10763902Seric */
10863902Seric 
10960224Seric # ifdef _AIX3
11064035Seric # define HASINITGROUPS	1	/* has initgroups(3) call */
11160219Seric # define FORK		fork	/* no vfork primitive available */
11264494Seric # undef  SETPROCTITLE		/* setproctitle confuses AIX */
11360219Seric # endif
11460219Seric 
11564314Seric 
11663902Seric /*
11763902Seric **  Silicon Graphics IRIX
11863902Seric **
11963965Seric **	Compiles on 4.0.1.
12063902Seric */
12163902Seric 
12263753Seric # ifdef IRIX
12364035Seric # define HASSETREUID	1	/* has setreuid(2) call */
12464035Seric # define HASINITGROUPS	1	/* has initgroups(3) call */
12564314Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
12663753Seric # define FORK		fork	/* no vfork primitive available */
127*64562Seric # define WAITUNION	1	/* use "union wait" as wait argument type */
12864155Seric # define setpgid	BSDsetpgrp
12963937Seric # define GIDSET_T	gid_t
13063753Seric # endif
13163753Seric 
13263902Seric 
13363902Seric /*
13463902Seric **  SunOS
13563902Seric */
13663902Seric 
13763787Seric #if defined(sun) && !defined(BSD)
13859074Seric 
13963962Seric # define LA_TYPE	LA_INT
14064035Seric # define HASSETREUID	1	/* has setreuid(2) call */
14164035Seric # define HASINITGROUPS	1	/* has initgroups(3) call */
14260564Seric 
14360602Seric # ifdef SOLARIS
14463902Seric 			/* Solaris 2.x (a.k.a. SunOS 5.x) */
14563949Seric #  define SYSTEM5	1	/* use System V definitions */
14663977Seric #  define setreuid(r, e)	seteuid(e)
14763787Seric #  include <sys/time.h>
14864125Seric #  define gethostbyname	__switch_gethostbyname	/* get working version */
14964125Seric #  define gethostbyaddr	__switch_gethostbyaddr	/* get working version */
15063962Seric #  define _PATH_UNIX	"/kernel/unix"
15163962Seric #  ifndef _PATH_SENDMAILCF
15263962Seric #   define _PATH_SENDMAILCF	"/etc/mail/sendmail.cf"
15364072Seric #  endif
15464072Seric #  ifndef _PATH_SENDMAILPID
15563962Seric #   define _PATH_SENDMAILPID	"/etc/mail/sendmail.pid"
15663962Seric #  endif
15763787Seric 
15860602Seric # else
15963787Seric 			/* SunOS 4.1.x */
16060602Seric #  define HASSTATFS	1	/* has the statfs(2) syscall */
16164035Seric /* #  define HASFLOCK	1	/* has flock(2) call */
16260564Seric #  include <vfork.h>
16363787Seric 
16460564Seric # endif
16559023Seric #endif
16659023Seric 
16764314Seric 
16863902Seric /*
16963902Seric **  Digital Ultrix 4.2A or 4.3
17064264Seric **
17164264Seric **	Apparently, fcntl locking is broken on 4.2A, in that locks are
17264264Seric **	not dropped when the process exits.  This causes major problems,
17364264Seric **	so flock is the only alternative.
17463902Seric */
17563902Seric 
17660564Seric #ifdef ultrix
17760564Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
17864035Seric # define HASSETREUID	1	/* has setreuid(2) call */
17963962Seric # define HASUNSETENV	1	/* has unsetenv(3) call */
18064035Seric # define HASINITGROUPS	1	/* has initgroups(3) call */
18164264Seric # define HASFLOCK	1	/* has flock(2) call */
18263962Seric # define LA_TYPE	LA_INT
18363962Seric # define LA_AVENRUN	"avenrun"
18464358Seric # undef IDENTPROTO		/* TCP/IP implementation is broken */
18560564Seric #endif
18660564Seric 
18764314Seric 
18863902Seric /*
18963902Seric **  OSF/1 (tested on Alpha)
19063902Seric */
19163902Seric 
19263787Seric #ifdef __osf__
19364314Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
19463962Seric # define HASUNSETENV	1	/* has unsetenv(3) call */
19564035Seric # define HASSETREUID	1	/* has setreuid(2) call */
19664035Seric # define HASINITGROUPS	1	/* has initgroups(3) call */
19764035Seric /* # define HASFLOCK	1	/* has flock(2) call */
19863962Seric # define LA_TYPE	LA_INT
19959287Seric #endif
20059287Seric 
20164314Seric 
20263902Seric /*
20363902Seric **  NeXTstep
20463902Seric */
20563902Seric 
20664076Seric #ifdef NeXT
20764035Seric # define HASINITGROUPS	1	/* has initgroups(3) call */
20864035Seric # define HASFLOCK	1	/* has flock(2) call */
20964125Seric # define NEEDGETOPT	1	/* need a replacement for getopt(3) */
21064314Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
21163753Seric # define sleep		sleepX
21264155Seric # define setpgid	setpgrp
21364295Seric # ifndef LA_TYPE
21464295Seric #  define LA_TYPE	LA_MACH
21564295Seric # endif
21664500Seric # ifndef _POSIX_SOURCE
21764035Seric typedef int		pid_t;
21864500Seric #  undef WEXITSTATUS
21964500Seric #  undef WIFEXITED
22064500Seric # endif
22164072Seric # ifndef _PATH_SENDMAILCF
22264072Seric #  define _PATH_SENDMAILCF	"/etc/sendmail/sendmail.cf"
22364072Seric # endif
22464072Seric # ifndef _PATH_SENDMAILPID
22564072Seric #  define _PATH_SENDMAILPID	"/etc/sendmail/sendmail.pid"
22664072Seric # endif
22759288Seric #endif
22859288Seric 
22964314Seric 
23063902Seric /*
23163962Seric **  4.4 BSD
23263902Seric */
23363902Seric 
23460568Seric #ifdef BSD4_4
23564072Seric # define HASUNSETENV	1	/* has unsetenv(3) call */
23664314Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
23760568Seric # include <sys/cdefs.h>
23863838Seric # define ERRLIST_PREDEFINED	/* don't declare sys_errlist */
23964072Seric # ifndef LA_TYPE
24064072Seric #  define LA_TYPE	LA_SUBR
24164072Seric # endif
24260568Seric #endif
24360568Seric 
24464314Seric 
24563902Seric /*
24663969Seric **  4.3 BSD -- this is for very old systems
24763969Seric **
24863969Seric **	You'll also have to install a new resolver library.
24963969Seric **	I don't guarantee that support for this environment is complete.
25063969Seric */
25163969Seric 
25263969Seric #ifdef oldBSD43
25363969Seric # define NEEDVPRINTF	1	/* need a replacement for vprintf(3) */
25463969Seric # define NEEDGETOPT	1	/* need a replacement for getopt(3) */
25563970Seric # define ARBPTR_T	char *
25664155Seric # define setpgid	setpgrp
25763969Seric # ifndef LA_TYPE
25863969Seric #  define LA_TYPE	LA_FLOAT
25963969Seric # endif
26063969Seric # ifndef _PATH_SENDMAILCF
26163969Seric #  define _PATH_SENDMAILCF	"/usr/lib/sendmail.cf"
26263969Seric # endif
26364358Seric # undef IDENTPROTO		/* TCP/IP implementation is broken */
26463969Seric #endif
26563969Seric 
26664314Seric 
26763969Seric /*
26863902Seric **  SCO Unix
26963902Seric */
27063902Seric 
27163838Seric #ifdef _SCO_unix_
27263838Seric # define SYSTEM5	1	/* include all the System V defines */
27364035Seric # define SYS5SIGNALS	1	/* SysV signal semantics -- reset on each sig */
27463987Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
27563838Seric # define FORK		fork
27663838Seric # define MAXPATHLEN	PATHSIZE
27763962Seric # define LA_TYPE	LA_ZERO
27863838Seric #endif
27963838Seric 
28064314Seric 
28163962Seric /*
28263962Seric **  ConvexOS 11.0 and later
28363962Seric */
28463962Seric 
28563962Seric #ifdef _CONVEX_SOURCE
28663977Seric # define BSD		1	/* include all the BSD defines */
28763977Seric # define HASUNAME	1	/* use System V uname(2) system call */
28863962Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
28963962Seric # define HASSETSID	1	/* has POSIX setsid(2) call */
29063977Seric # define NEEDGETOPT	1	/* need replacement for getopt(3) */
29163962Seric # define LA_TYPE	LA_FLOAT
29264032Seric # undef IDENTPROTO
29363962Seric #endif
29463962Seric 
29564314Seric 
29663962Seric /*
29763962Seric **  RISC/os 4.51
29863962Seric **
29963962Seric **	Untested...
30063962Seric */
30163962Seric 
30263965Seric #ifdef RISCOS
30363962Seric # define HASUNSETENV	1	/* has unsetenv(3) call */
30464035Seric /* # define HASFLOCK	1	/* has flock(2) call */
30563962Seric # define LA_TYPE	LA_INT
30663962Seric # define LA_AVENRUN	"avenrun"
30763962Seric # define _PATH_UNIX	"/unix"
30863962Seric #endif
30963962Seric 
31064314Seric 
31164155Seric /*
31264155Seric **  Linux 0.99pl10 and above...
31364155Seric **	From Karl London <karl@borg.demon.co.uk>.
31464155Seric */
31564155Seric 
31664155Seric #ifdef linux
31764155Seric # define BSD		1	/* pretend to be BSD based today */
31864155Seric # undef  NEEDVPRINTF	1	/* need a replacement for vprintf(3) */
31964155Seric # define NEEDGETOPT	1	/* need a replacement for getopt(3) */
32064380Seric # define HASUNSETENV	1	/* has unsetenv(3) call */
32164155Seric # ifndef LA_TYPE
32264155Seric #  define LA_TYPE	LA_FLOAT
32364155Seric # endif
32464155Seric #endif
32564155Seric 
32664155Seric 
32764345Seric /*
32864345Seric **  DELL SVR4 Issue 2.2, and others
32964345Seric **	From Kimmo Suominen <kim@grendel.lut.fi>
33064345Seric **
33164345Seric **	It's on #ifdef DELL_SVR4 because Solaris also gets __svr4__
33264345Seric **	defined, and the definitions conflict.
33364345Seric */
33464345Seric 
33564345Seric #ifdef DELL_SVR4
33664345Seric # define SYSTEM5	1
33764345Seric /* # define setreuid(r, e)	seteuid(e) */
33864345Seric /* # include <sys/time.h> */
33964345Seric # define _PATH_UNIX	"/unix"
34064345Seric # ifndef _PATH_SENDMAILCF
34164345Seric #  define _PATH_SENDMAILCF	"/usr/ucblib/sendmail.cf"
34264345Seric # endif
34364345Seric # ifndef _PATH_SENDMAILPID
34464345Seric #  define _PATH_SENDMAILPID	"/usr/ucblib/sendmail.pid"
34564345Seric # endif
34664345Seric #endif
34764345Seric 
34864345Seric 
34964380Seric /*
35064380Seric **  Apple A/UX 3.0
35164380Seric */
35264345Seric 
35364380Seric #ifdef _AUX_SOURCE
35464380Seric # define BSD			/* has BSD routines */
35564380Seric # define HASSTATFS	1	/* has the statfs(2) syscall */
35664380Seric # define HASUNAME	1	/* use System V uname(2) system call */
35764380Seric # define HASUSTAT	1	/* use System V ustat(2) syscall */
35864380Seric # define HASSETVBUF	1	/* we have setvbuf(3) in libc */
35964561Seric # define SIGFUNC_DEFINED	/* sigfunc_t already defined */
36064380Seric # define FORK		fork
36164380Seric # ifndef _PATH_SENDMAILCF
36264380Seric #  define _PATH_SENDMAILCF	"/usr/lib/sendmail.cf"
36364380Seric # endif
36464380Seric # ifndef LA_TYPE
36564380Seric #  define LA_TYPE	LA_ZERO
36664380Seric # endif
36764560Seric # undef WIFEXITED
36864560Seric # undef WEXITSTATUS
36964380Seric #endif
37064380Seric 
37164380Seric 
37264380Seric 
37363902Seric /**********************************************************************
37463787Seric **  End of Per-Operating System defines
37563902Seric **********************************************************************/
37663787Seric 
37763949Seric /**********************************************************************
37863949Seric **  More general defines
37963949Seric **********************************************************************/
38063949Seric 
38163962Seric /* general BSD defines */
38263962Seric #ifdef BSD
38364035Seric # define HASGETDTABLESIZE 1	/* has getdtablesize(2) call */
38464035Seric # define HASSETREUID	1	/* has setreuid(2) call */
38564035Seric # define HASINITGROUPS	1	/* has initgroups(2) call */
38664035Seric # define HASFLOCK	1	/* has flock(2) call */
38763962Seric #endif
38863962Seric 
38963787Seric /* general System V defines */
39063787Seric # ifdef SYSTEM5
39163949Seric # define HASUNAME	1	/* use System V uname(2) system call */
39263949Seric # define HASUSTAT	1	/* use System V ustat(2) syscall */
39363962Seric # ifndef LA_TYPE
39463962Seric #  define LA_TYPE	LA_INT
39563962Seric # endif
39663949Seric # define bcopy(s, d, l)		(memmove((d), (s), (l)))
39763949Seric # define bzero(d, l)		(memset((d), '\0', (l)))
39863949Seric # define bcmp(s, d, l)		(memcmp((s), (d), (l)))
39963787Seric # endif
40063787Seric 
40163949Seric /* general "standard C" defines */
40263949Seric #if defined(__STDC__) || defined(SYSTEM5)
40363949Seric # define HASSETVBUF	1	/* we have setvbuf(3) in libc */
40463949Seric #endif
40563949Seric 
40663949Seric /* general POSIX defines */
40763949Seric #ifdef _POSIX_VERSION
40863949Seric # define HASSETSID	1	/* has setsid(2) call */
40963966Seric # define HASWAITPID	1	/* has waitpid(2) call */
41063949Seric #endif
41163949Seric 
41263787Seric /*
41363937Seric **  If no type for argument two of getgroups call is defined, assume
41463937Seric **  it's an integer -- unfortunately, there seem to be several choices
41563937Seric **  here.
41663937Seric */
41763937Seric 
41863937Seric #ifndef GIDSET_T
41963937Seric # define GIDSET_T	int
42063937Seric #endif
42163937Seric 
42264439Seric 
42364439Seric /**********************************************************************
42459023Seric **  Remaining definitions should never have to be changed.  They are
42559023Seric **  primarily to provide back compatibility for older systems -- for
42659287Seric **  example, it includes some POSIX compatibility definitions
42764439Seric **********************************************************************/
42859023Seric 
42959388Seric /* System 5 compatibility */
43059388Seric #ifndef S_ISREG
43159388Seric #define S_ISREG(foo)	((foo & S_IFREG) == S_IFREG)
43259388Seric #endif
43359388Seric #ifndef S_IWGRP
43459388Seric #define S_IWGRP		020
43559388Seric #endif
43659388Seric #ifndef S_IWOTH
43759388Seric #define S_IWOTH		002
43859388Seric #endif
43959388Seric 
44059023Seric /*
44150537Seric **  Older systems don't have this error code -- it should be in
44250537Seric **  /usr/include/sysexits.h.
44350537Seric */
44450537Seric 
44550537Seric # ifndef EX_CONFIG
44650537Seric # define EX_CONFIG	78	/* configuration error */
44750537Seric # endif
44856852Seric 
44963993Seric /*
45063993Seric **  These are used in a few cases where we need some special
45163993Seric **  error codes, but where the system doesn't provide something
45263993Seric **  reasonable.  They are printed in errstring.
45363993Seric */
45463993Seric 
45563993Seric #ifndef E_PSEUDOBASE
45663993Seric # define E_PSEUDOBASE	256
45763993Seric #endif
45863993Seric 
45963993Seric #define EOPENTIMEOUT	(E_PSEUDOBASE + 0)	/* timeout on open */
46063993Seric #define E_DNSBASE	(E_PSEUDOBASE + 20)	/* base for DNS h_errno */
46163993Seric 
46263970Seric /* type of arbitrary pointer */
46363970Seric #ifndef ARBPTR_T
46463970Seric # define ARBPTR_T	void *
46563970Seric #endif
46663970Seric 
46760568Seric #ifndef __P
46860568Seric # include "cdefs.h"
46960568Seric #endif
47060568Seric 
47156852Seric /*
47258778Seric **  Do some required dependencies
47358778Seric */
47458778Seric 
47558778Seric #if defined(NETINET) || defined(NETISO)
47659107Seric # define SMTP		1	/* enable user and server SMTP */
47759107Seric # define QUEUE		1	/* enable queueing */
47859107Seric # define DAEMON		1	/* include the daemon (requires IPC & SMTP) */
47958778Seric #endif
48058778Seric 
48158778Seric 
48258778Seric /*
48356852Seric **  Arrange to use either varargs or stdargs
48456852Seric */
48556852Seric 
48656852Seric # ifdef __STDC__
48756852Seric 
48856852Seric # include <stdarg.h>
48956852Seric 
49056852Seric # define VA_LOCAL_DECL	va_list ap;
49156852Seric # define VA_START(f)	va_start(ap, f)
49256852Seric # define VA_END		va_end(ap)
49356852Seric 
49456852Seric # else
49556852Seric 
49656852Seric # include <varargs.h>
49756852Seric 
49856852Seric # define VA_LOCAL_DECL	va_list ap;
49956852Seric # define VA_START(f)	va_start(ap)
50056852Seric # define VA_END		va_end(ap)
50156852Seric 
50256852Seric # endif
50357631Seric 
50457943Seric #ifdef HASUNAME
50557631Seric # include <sys/utsname.h>
50657631Seric # ifdef newstr
50757631Seric #  undef newstr
50857631Seric # endif
50957943Seric #else /* ! HASUNAME */
51057631Seric # define NODE_LENGTH 32
51157631Seric struct utsname
51257631Seric {
51357631Seric 	char nodename[NODE_LENGTH+1];
51457631Seric };
51557943Seric #endif /* HASUNAME */
51657642Seric 
51763838Seric #if !defined(MAXHOSTNAMELEN) && !defined(_SCO_unix_)
51863838Seric # define MAXHOSTNAMELEN	256
51957735Seric #endif
52058153Seric 
52158153Seric #if !defined(SIGCHLD) && defined(SIGCLD)
52258153Seric # define SIGCHLD	SIGCLD
52358153Seric #endif
52458153Seric 
52558153Seric #ifndef STDIN_FILENO
52658153Seric #define STDIN_FILENO	0
52758153Seric #endif
52858153Seric 
52958153Seric #ifndef STDOUT_FILENO
53058153Seric #define STDOUT_FILENO	1
53158153Seric #endif
53258153Seric 
53358153Seric #ifndef STDERR_FILENO
53458153Seric #define STDERR_FILENO	2
53558153Seric #endif
53658689Seric 
53764072Seric #ifndef LOCK_SH
53864035Seric # define LOCK_SH	0x01	/* shared lock */
53964035Seric # define LOCK_EX	0x02	/* exclusive lock */
54064035Seric # define LOCK_NB	0x04	/* non-blocking lock */
54164035Seric # define LOCK_UN	0x08	/* unlock */
54264035Seric #endif
54358692Seric 
54464035Seric #ifndef SIG_ERR
54564035Seric # define SIG_ERR	((void (*)()) -1)
54658689Seric #endif
54758702Seric 
54864500Seric #ifndef WEXITSTATUS
54964500Seric # define WEXITSTATUS(st)	(((st) >> 8) & 0377)
55064500Seric #endif
55164500Seric #ifndef WIFEXITED
55264500Seric # define WIFEXITED(st)		(((st) & 0377) == 0)
55364500Seric #endif
55464500Seric 
55564561Seric #ifndef SIGFUNC_DEFINED
55664561Seric typedef void		(*sigfunc_t) __P((int));
55764561Seric #endif
55864561Seric 
55958702Seric /*
56058702Seric **  Size of tobuf (deliver.c)
56158702Seric **	Tweak this to match your syslog implementation.  It will have to
56258702Seric **	allow for the extra information printed.
56358702Seric */
56458702Seric 
56558702Seric #ifndef TOBUFSIZE
56658702Seric # define TOBUFSIZE (1024 - 256)
56758702Seric #endif
56860219Seric 
56960219Seric /* fork routine -- set above using #ifdef _osname_ or in Makefile */
57060219Seric # ifndef FORK
57160219Seric # define FORK		vfork		/* function to call to fork mailer */
57260219Seric # endif
573