DG/UX changes
[unix-history] / usr / src / usr.sbin / sendmail / src / conf.h
CommitLineData
5a739feb 1/*
792e6158 2 * Copyright (c) 1983, 1995 Eric P. Allman
31de980b
KB
3 * Copyright (c) 1988, 1993
4 * The Regents of the University of California. All rights reserved.
bee79b64 5 *
417f7a11 6 * %sccs.include.redist.c%
bee79b64 7 *
1618911b 8 * @(#)conf.h 8.192 (Berkeley) %G%
bee79b64 9 */
aeb2545d
DF
10
11/*
12** CONF.H -- All user-configurable parameters for sendmail
d947d433
EA
13**
14** Send updates to sendmail@CS.Berkeley.EDU so they will be
15** included in the next release.
5a739feb
EA
16*/
17
bdf2e9ed
EA
18struct rusage; /* forward declaration to get gcc to shut up in wait.h */
19
f43b04ce 20# include <sys/param.h>
82530719 21# include <sys/types.h>
46300693 22# include <sys/stat.h>
c2edb205 23# include <sys/file.h>
0349f8cc 24# include <sys/wait.h>
f8a31c8e 25# include <fcntl.h>
39270cfd 26# include <signal.h>
5b7a2dfe
EA
27# include <netdb.h>
28# include <pwd.h>
f43b04ce 29
ba6514e2 30/**********************************************************************
5a739feb
EA
31** Table sizes, etc....
32** There shouldn't be much need to change these....
ba6514e2 33**********************************************************************/
5a739feb 34
d36f8e5c 35# define MAXLINE 2048 /* max line length */
f0a960f1 36# define MAXNAME 256 /* max length of a name */
5a739feb 37# define MAXPV 40 /* max # of parms to mailers */
d36f8e5c 38# define MAXATOM 200 /* max atoms per address */
5a739feb 39# define MAXMAILERS 25 /* maximum mailers known to system */
91e25a39 40# define MAXRWSETS 200 /* max # of sets of rewriting rules */
5a739feb 41# define MAXPRIORITIES 25 /* max values for Precedence: field */
8583ab39 42# define MAXMXHOSTS 20 /* max # of MX records */
8657d05f 43# define SMTPLINELIM 990 /* maximum SMTP line length */
f43b04ce
EA
44# define MAXKEY 128 /* maximum size of a database key */
45# define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */
b0b636d1 46# define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */
9f7134c8 47# define MAXALIASDB 12 /* max # of alias databases */
3b2e4211
EA
48# define MAXMAPSTACK 12 /* max # of stacked or sequenced maps */
49# define MAXTOCLASS 8 /* max # of message timeout classes */
022362dd
EA
50# define MAXMIMEARGS 20 /* max args in Content-Type: */
51# define MAXMIMENESTING 20 /* max MIME multipart nesting */
8a6b1962 52# define QUEUESEGSIZE 1000 /* increment for queue size */
8583ab39 53
ba6514e2 54/**********************************************************************
5a739feb 55** Compilation options.
efe7f723
EA
56** #define these to 1 if they are available;
57** #define them to 0 otherwise.
a40faef5 58** All can be overridden from Makefile.
efe7f723
EA
59**********************************************************************/
60
a40faef5
EA
61# ifndef NETINET
62# define NETINET 1 /* include internet support */
63# endif
64
efe7f723
EA
65# ifndef NAMED_BIND
66# define NAMED_BIND 1 /* use Berkeley Internet Domain Server */
67# endif
68
a40faef5
EA
69# ifndef XDEBUG
70# define XDEBUG 1 /* enable extended debugging */
71# endif
72
73# ifndef MATCHGECOS
74# define MATCHGECOS 1 /* match user names from gecos field */
75# endif
76
15a87016
EA
77# ifndef DSN
78# define DSN 1 /* include delivery status notification code */
79# endif
80
a40faef5
EA
81# if !defined(USERDB) && (defined(NEWDB) || defined(HESIOD))
82# define USERDB 1 /* look in user database */
83# endif
84
8bc4f1c6
EA
85# ifndef MIME8TO7
86# define MIME8TO7 1 /* 8->7 bit MIME conversions */
87# endif
88
89# ifndef MIME7TO8
90# define MIME7TO8 1 /* 7->8 bit MIME conversions */
91# endif
92
a40faef5
EA
93/**********************************************************************
94** "Hard" compilation options.
95** #define these if they are available; comment them out otherwise.
96** These cannot be overridden from the Makefile, and should really not
97** be turned off unless absolutely necessary.
98**********************************************************************/
fce21cb9 99
a40faef5 100# define LOG /* enable logging -- don't turn off */
fce21cb9 101
a40faef5
EA
102/**********************************************************************
103** End of site-specific configuration.
104**********************************************************************/
105\f/*
c6bd47b4
EA
106** General "standard C" defines.
107**
108** These may be undone later, to cope with systems that claim to
109** be Standard C but aren't. Gcc is the biggest offender -- it
110** doesn't realize that the library is part of the language.
111**
112** Life would be much easier if we could get rid of this sort
113** of bozo problems.
114*/
115
116#ifdef __STDC__
117# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
118#endif
a40faef5
EA
119
120/*
121** Assume you have standard calls; can be #undefed below if necessary.
122*/
123
124# define HASLSTAT 1 /* has lstat(2) call */
d947d433 125\f/**********************************************************************
e6245c7e
EA
126** Operating system configuration.
127**
128** Unless you are porting to a new OS, you shouldn't have to
129** change these.
ba6514e2 130**********************************************************************/
5a4c03c6 131
ba6514e2 132/*
27a00e24 133** HP-UX -- tested for 8.07, 9.00, and 9.01.
4874708a
EA
134**
135** If V4FS is defined, compile for HP-UX 10.0.
ba6514e2
EA
136*/
137
2e4c6b4f 138#ifdef __hpux
4874708a
EA
139 /* common definitions for HP-UX 9.x and 10.x */
140# undef m_flags /* conflict between db.h & sys/sysmacros.h on HP 300 */
fd57f063 141# define SYSTEM5 1 /* include all the System V defines */
39270cfd 142# define HASINITGROUPS 1 /* has initgroups(3) call */
04c2baef
EA
143# define USESETEUID 1 /* has useable seteuid(2) call */
144# define seteuid(e) setresuid(-1, e, -1)
d947d433 145# define IP_SRCROUTE 1 /* can check IP source routing */
b5aacac9 146# define LA_TYPE LA_HPUX
68821f30 147# define SPT_TYPE SPT_PSTAT
5e0e0f8f 148# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
60e52ca7 149# define GIDSET_T gid_t
0379c130
EA
150# ifndef HASGETUSERSHELL
151# define HASGETUSERSHELL 0 /* getusershell(3) causes core dumps */
152# endif
fc658fc9 153# define syslog hard_syslog
57a13309
EA
154# ifdef __STDC__
155extern void hard_syslog(int, char *, ...);
156# endif
4874708a
EA
157
158# ifdef V4FS
159 /* HP-UX 10.x */
4e93bc5c
EA
160# define _PATH_UNIX "/stand/vmunix"
161# define _PATH_VENDOR_CF "/etc/mail/sendmail.cf"
4874708a
EA
162# ifndef _PATH_SENDMAILPID
163# define _PATH_SENDMAILPID "/etc/mail/sendmail.pid"
164# endif
165# ifndef IDENTPROTO
166# define IDENTPROTO 1 /* TCP/IP implementation fixed in 10.0 */
167# endif
168
169# else
170 /* HP-UX 9.x */
4e93bc5c
EA
171# define _PATH_UNIX "/hp-ux"
172# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
4874708a
EA
173# ifndef IDENTPROTO
174# define IDENTPROTO 0 /* TCP/IP implementation is broken */
175# endif
176# endif
177
2e4c6b4f 178#endif
273562d8 179
2b09dd75 180
ba6514e2
EA
181/*
182** IBM AIX 3.x -- actually tested for 3.2.3
183*/
184
2e4c6b4f 185#ifdef _AIX3
f1459d51 186# include <paths.h>
39270cfd 187# define HASINITGROUPS 1 /* has initgroups(3) call */
485a1ac5 188# define HASUNAME 1 /* use System V uname(2) system call */
1ee33f7d 189# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
d947d433 190# define IP_SRCROUTE 0 /* Something is broken with getsockopt() */
9114f86c 191# define FORK fork /* no vfork primitive available */
bdf2e9ed 192# define GIDSET_T gid_t
5e0e0f8f 193# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
ddeafa3b 194# define SPT_PADCHAR '\0' /* pad process title with nulls */
263da570 195# define LA_TYPE LA_INT
f1459d51 196# define LA_AVENRUN "avenrun"
2e4c6b4f 197#endif
8e5c6745 198
2b09dd75 199
ba6514e2
EA
200/*
201** Silicon Graphics IRIX
202**
0fc3fb21 203** Compiles on 4.0.1.
10589f62 204**
94faee41
EA
205** Use IRIX64 instead of IRIX for 64-bit IRIX (6.0).
206** Use IRIX5 instead of IRIX for IRIX 5.x.
10589f62
EA
207**
208** IRIX64 changes from Mark R. Levinson <ml@cvdev.rochester.edu>.
94faee41 209** IRIX5 changes from Kari E. Hurtta <Kari.Hurtta@fmi.fi>.
ba6514e2
EA
210*/
211
94faee41 212#if defined(IRIX64) || defined(IRIX5)
10589f62
EA
213# define IRIX
214#endif
215
2e4c6b4f 216#ifdef IRIX
f369a70b 217# define SYSTEM5 1 /* this is a System-V derived system */
39270cfd
EA
218# define HASSETREUID 1 /* has setreuid(2) call */
219# define HASINITGROUPS 1 /* has initgroups(3) call */
1ee33f7d 220# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
d947d433 221# define IP_SRCROUTE 1 /* can check IP source routing */
8e5c6745 222# define FORK fork /* no vfork primitive available */
0d2faefc 223# define setpgid BSDsetpgrp
e6cb9fc4 224# define GIDSET_T gid_t
5e0e0f8f 225# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
b2b48b69 226# define SFS_BAVAIL f_bfree /* alternate field name */
f369a70b 227# define LA_TYPE LA_INT
10589f62
EA
228# ifdef IRIX64
229# define NAMELISTMASK 0x7fffffffffffffff /* mask for nlist() values */
230# else
231# define NAMELISTMASK 0x7fffffff /* mask for nlist() values */
232# endif
3f896c04
EA
233# if defined(IRIX64) || defined(IRIX5)
234# define ARGV_T char *const *
a11d11ef 235# define HASSETRLIMIT 1 /* has setrlimit(2) syscall */
3f896c04
EA
236# else
237# define ARGV_T const char **
238# define WAITUNION 1 /* use "union wait" as wait argument type */
239# endif
2e4c6b4f 240#endif
9114f86c 241
ba6514e2
EA
242
243/*
8988dfd3
EA
244** SunOS and Solaris
245**
246** Tested on SunOS 4.1.x (a.k.a. Solaris 1.1.x) and
04c2baef 247** Solaris 2.4 (a.k.a. SunOS 5.4).
ba6514e2
EA
248*/
249
45f49b73 250#if defined(sun) && !defined(BSD)
fd57f063 251
39270cfd 252# define HASINITGROUPS 1 /* has initgroups(3) call */
8988dfd3 253# define HASUNAME 1 /* use System V uname(2) system call */
1ee33f7d 254# define HASGETUSERSHELL 1 /* DOES have getusershell(3) call in libc */
d947d433 255# define IP_SRCROUTE 1 /* can check IP source routing */
5e0e0f8f 256# define LA_TYPE LA_INT
45f49b73 257
d4125001 258# ifdef SOLARIS_2_3
67439414 259# define SOLARIS 203 /* for back compat only -- use -DSOLARIS=203 */
d4125001
EA
260# endif
261
7b3820ed 262# ifdef SOLARIS
ba6514e2 263 /* Solaris 2.x (a.k.a. SunOS 5.x) */
0554a095
EA
264# ifndef __svr4__
265# define __svr4__ /* use all System V Releae 4 defines below */
266# endif
fd57f063 267# include <sys/time.h>
d7a2e485 268# define GIDSET_T gid_t
f361504a 269# ifndef _PATH_UNIX
4e93bc5c 270# define _PATH_UNIX "/dev/ksyms"
0f786d57 271# endif
4e93bc5c 272# define _PATH_VENDOR_CF "/etc/mail/sendmail.cf"
0f786d57 273# ifndef _PATH_SENDMAILPID
33d59d37
EA
274# define _PATH_SENDMAILPID "/etc/mail/sendmail.pid"
275# endif
f0416b32
EA
276# ifndef _PATH_HOSTS
277# define _PATH_HOSTS "/etc/inet/hosts"
278# endif
71aecf7c
EA
279# ifndef SYSLOG_BUFSIZE
280# define SYSLOG_BUFSIZE 1024 /* allow full size syslog buffer */
281# endif
fd57f063 282
7b3820ed 283# else
e9abaf1a 284 /* SunOS 4.0.3 or 4.1.x */
f361504a 285# define HASSETREUID 1 /* has setreuid(2) call */
72af7ebb
EA
286# ifndef HASFLOCK
287# define HASFLOCK 1 /* has flock(2) call */
288# endif
5e0e0f8f 289# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
45f49b73 290# include <vfork.h>
45f49b73 291
e9abaf1a
EA
292# ifdef SUNOS403
293 /* special tweaking for SunOS 4.0.3 */
294# include <malloc.h>
295# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
2fca0e18 296# define NEEDSTRSTR 1 /* need emulation of strstr(3) routine */
e9abaf1a
EA
297# define WAITUNION 1 /* use "union wait" as wait argument type */
298# undef WIFEXITED
299# undef WEXITSTATUS
300# undef HASUNAME
301# define setpgid setpgrp
302typedef int pid_t;
303extern char *getenv();
304
d0812b5a
EA
305# else
306 /* 4.1.x specifics */
307# define HASSETSID 1 /* has Posix setsid(2) call */
308# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
309
e9abaf1a 310# endif
fd57f063 311# endif
45f49b73
EA
312#endif
313
fe3849ea 314/*
8988dfd3
EA
315** DG/UX
316**
810a6265
EA
317** Tested on 5.4.2 and 5.4.3. Use DGUX_5_4_2 to get the
318** older support.
319** 5.4.3 changes from Mark T. Robinson <mtr@ornl.gov>.
fe3849ea
EA
320*/
321
810a6265
EA
322#ifdef DGUX_5_4_2
323# define DGUX 1
324#endif
325
fe3849ea
EA
326#ifdef DGUX
327# define SYSTEM5 1
b5aacac9 328# define LA_TYPE LA_DGUX
fe3849ea
EA
329# define HASSETREUID 1 /* has setreuid(2) call */
330# define HASUNAME 1 /* use System V uname(2) system call */
331# define HASSETSID 1 /* has Posix setsid(2) call */
332# define HASINITGROUPS 1 /* has initgroups(3) call */
1618911b 333# define IP_SRCROUTE 0 /* does not have <netinet/ip_var.h> */
e1ab99fe 334# define HASGETUSERSHELL 0 /* does not have getusershell(3) */
a74fd615
EA
335# ifndef IDENTPROTO
336# define IDENTPROTO 0 /* TCP/IP implementation is broken */
337# endif
ddeafa3b 338# define SPT_TYPE SPT_NONE /* don't use setproctitle */
5e0e0f8f 339# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
8988dfd3
EA
340
341/* these include files must be included early on DG/UX */
342# include <netinet/in.h>
343# include <arpa/inet.h>
344
1618911b
EA
345/* compiler doesn't understand const? */
346# define const
347
810a6265
EA
348# ifdef DGUX_5_4_2
349# define inet_addr dgux_inet_addr
fe3849ea 350extern long dgux_inet_addr();
810a6265 351# endif
fe3849ea
EA
352#endif
353
2b09dd75 354
ba6514e2
EA
355/*
356** Digital Ultrix 4.2A or 4.3
9cea9407
EA
357**
358** Apparently, fcntl locking is broken on 4.2A, in that locks are
359** not dropped when the process exits. This causes major problems,
360** so flock is the only alternative.
ba6514e2
EA
361*/
362
45f49b73 363#ifdef ultrix
39270cfd 364# define HASSETREUID 1 /* has setreuid(2) call */
33d59d37 365# define HASUNSETENV 1 /* has unsetenv(3) call */
39270cfd 366# define HASINITGROUPS 1 /* has initgroups(3) call */
b1839a64 367# define HASUNAME 1 /* use System V uname(2) system call */
72af7ebb
EA
368# ifndef HASFLOCK
369# define HASFLOCK 1 /* has flock(2) call */
370# endif
1ee33f7d 371# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
4aca8efc
EA
372# ifndef BROKEN_RES_SEARCH
373# define BROKEN_RES_SEARCH 1 /* res_search(unknown) returns h_errno=0 */
374# endif
0dbb4629
EA
375# ifdef vax
376# define LA_TYPE LA_FLOAT
377# else
378# define LA_TYPE LA_INT
379# define LA_AVENRUN "avenrun"
380# endif
5e0e0f8f 381# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
a74fd615 382# ifndef IDENTPROTO
4aca8efc 383# define IDENTPROTO 0 /* pre-4.4 TCP/IP implementation is broken */
a74fd615 384# endif
e6245c7e
EA
385#endif
386
2b09dd75 387
6068a621
EA
388/*
389** OSF/1 for Intel Paragon.
390**
d4895973
EA
391** Contributed by Jeff A. Earickson <jeff@ssd.intel.com>
392** of Intel Scalable Systems Divison.
6068a621
EA
393*/
394
395#ifdef __PARAGON__
396# define __osf__ 1 /* get OSF/1 defines below */
4e93bc5c 397# define _PATH_VENDOR_CF "/var/adm/sendmail/sendmail.cf"
6068a621
EA
398#endif
399
400
ba6514e2
EA
401/*
402** OSF/1 (tested on Alpha)
403*/
404
fd57f063 405#ifdef __osf__
33d59d37 406# define HASUNSETENV 1 /* has unsetenv(3) call */
04c2baef 407# define USESETEUID 1 /* has useable seteuid(2) call */
39270cfd 408# define HASINITGROUPS 1 /* has initgroups(3) call */
d947d433 409# define IP_SRCROUTE 1 /* can check IP source routing */
534256ae 410# ifndef HASFLOCK
72af7ebb
EA
411# define HASFLOCK 1 /* has flock(2) call */
412# endif
33d59d37 413# define LA_TYPE LA_INT
5e0e0f8f 414# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
8988dfd3 415# ifndef _PATH_SENDMAILPID
fc658fc9 416# define _PATH_SENDMAILPID "/var/run/sendmail.pid"
8988dfd3 417# endif
6070681d
EA
418#endif
419
2b09dd75 420
ba6514e2
EA
421/*
422** NeXTstep
423*/
424
fbfeb92c 425#ifdef NeXT
39270cfd 426# define HASINITGROUPS 1 /* has initgroups(3) call */
bd345c9b 427# define NEEDPUTENV 2 /* need putenv(3) call; no setenv(3) call */
72af7ebb
EA
428# ifndef HASFLOCK
429# define HASFLOCK 1 /* has flock(2) call */
430# endif
9cb009c2 431# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
693a756a 432# define WAITUNION 1 /* use "union wait" as wait argument type */
782a2f97 433# define UID_T int /* compiler gripes on uid_t */
8e5c6745 434# define sleep sleepX
0d2faefc 435# define setpgid setpgrp
e60b62fd
EA
436# ifndef LA_TYPE
437# define LA_TYPE LA_MACH
438# endif
5e0e0f8f 439# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
0349f8cc 440# ifndef _POSIX_SOURCE
39270cfd 441typedef int pid_t;
0349f8cc
EA
442# undef WEXITSTATUS
443# undef WIFEXITED
444# endif
4e93bc5c 445# define _PATH_VENDOR_CF "/etc/sendmail/sendmail.cf"
0f786d57
EA
446# ifndef _PATH_SENDMAILPID
447# define _PATH_SENDMAILPID "/etc/sendmail/sendmail.pid"
448# endif
8c5949d2
EA
449#endif
450
2b09dd75 451
ba6514e2 452/*
33d59d37 453** 4.4 BSD
9c08c09b
EA
454**
455** See also BSD defines.
ba6514e2
EA
456*/
457
01621321 458#if defined(BSD4_4) && !defined(__bsdi__)
0f786d57 459# define HASUNSETENV 1 /* has unsetenv(3) call */
04c2baef 460# define USESETEUID 1 /* has useable seteuid(2) call */
ed0b2c1b 461# include <sys/cdefs.h>
7621e399 462# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
b7c46410 463# define BSD4_4_SOCKADDR /* has sa_len */
fbc0326a 464# define NETLINK 1 /* supports AF_LINK */
0f786d57
EA
465# ifndef LA_TYPE
466# define LA_TYPE LA_SUBR
467# endif
5e0e0f8f 468# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
ddeafa3b 469# define SPT_TYPE SPT_PSSTRINGS /* use PS_STRINGS pointer */
7621e399
EA
470#endif
471
2b09dd75 472
e7261663
EA
473/*
474** BSD/386 (all versions)
475** From Tony Sanders, BSDI
476*/
477
478#ifdef __bsdi__
479# define HASUNSETENV 1 /* has the unsetenv(3) call */
480# define HASSETSID 1 /* has the setsid(2) POSIX syscall */
04c2baef 481# define USESETEUID 1 /* has useable seteuid(2) call */
e7261663
EA
482# include <sys/cdefs.h>
483# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
b7c46410 484# define BSD4_4_SOCKADDR /* has sa_len */
fbc0326a 485# define NETLINK 1 /* supports AF_LINK */
11c14c72 486# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
e7261663
EA
487# ifndef LA_TYPE
488# define LA_TYPE LA_SUBR
489# endif
c291e9af 490# define GIDSET_T gid_t
11c14c72
EA
491# if defined(_BSDI_VERSION) && _BSDI_VERSION >= 199312
492 /* version 1.1 or later */
ddeafa3b
EA
493# undef SPT_TYPE
494# define SPT_TYPE SPT_BUILTIN /* setproctitle is in libc */
11c14c72
EA
495# else
496 /* version 1.0 or earlier */
497# ifndef OLD_NEWDB
498# define OLD_NEWDB 1 /* old version of newdb library */
499# endif
ddeafa3b 500# define SPT_PADCHAR '\0' /* pad process title with nulls */
11c14c72 501# endif
e7261663
EA
502#endif
503
504
505
db82ecce 506/*
13a6f00c 507** FreeBSD / NetBSD (all architectures, all versions)
db82ecce 508**
13a6f00c
EA
509** 4.3BSD clone, closer to 4.4BSD for FreeBSD 1.x and NetBSD 0.9x
510** 4.4BSD-Lite based for FreeBSD 2.x and NetBSD 1.x
9c08c09b
EA
511**
512** See also BSD defines.
db82ecce
EA
513*/
514
13a6f00c 515#if defined(__FreeBSD__) || defined(__NetBSD__)
db82ecce
EA
516# define HASUNSETENV 1 /* has unsetenv(3) call */
517# define HASSETSID 1 /* has the setsid(2) POSIX syscall */
04c2baef 518# define USESETEUID 1 /* has useable seteuid(2) call */
13a6f00c 519# define HASUNAME 1 /* has uname(2) syscall */
db82ecce
EA
520# include <sys/cdefs.h>
521# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
b7c46410 522# define BSD4_4_SOCKADDR /* has sa_len */
fbc0326a 523# define NETLINK 1 /* supports AF_LINK */
13a6f00c 524# define GIDSET_T gid_t
db82ecce
EA
525# ifndef LA_TYPE
526# define LA_TYPE LA_SUBR
527# endif
5e0e0f8f 528# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
db82ecce
EA
529#endif
530
531
8988dfd3
EA
532/*
533** Mach386
534**
535** For mt Xinu's Mach386 system.
536*/
537
538#if defined(MACH) && defined(i386)
539# define MACH386 1
540# define HASUNSETENV 1 /* has unsetenv(3) call */
541# define HASINITGROUPS 1 /* has initgroups(3) call */
534256ae 542# ifndef HASFLOCK
72af7ebb
EA
543# define HASFLOCK 1 /* has flock(2) call */
544# endif
8988dfd3
EA
545# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
546# define NEEDSTRTOL 1 /* need the strtol() function */
547# define setpgid setpgrp
548# ifndef LA_TYPE
549# define LA_TYPE LA_FLOAT
550# endif
5e0e0f8f 551# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
c6bd47b4 552# undef HASSETVBUF /* don't actually have setvbuf(3) */
8988dfd3
EA
553# undef WEXITSTATUS
554# undef WIFEXITED
4e93bc5c 555# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
8988dfd3
EA
556# ifndef _PATH_SENDMAILPID
557# define _PATH_SENDMAILPID "/etc/sendmail.pid"
558# endif
559#endif
560
561
35f1f39e
EA
562/*
563** 4.3 BSD -- this is for very old systems
564**
f0bb212b
EA
565** Should work for mt Xinu MORE/BSD and Mips UMIPS-BSD 2.1.
566**
35f1f39e
EA
567** You'll also have to install a new resolver library.
568** I don't guarantee that support for this environment is complete.
569*/
570
f0bb212b 571#if defined(oldBSD43) || defined(MORE_BSD) || defined(umipsbsd)
35f1f39e
EA
572# define NEEDVPRINTF 1 /* need a replacement for vprintf(3) */
573# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
0639fd0c 574# define ARBPTR_T char *
0d2faefc 575# define setpgid setpgrp
35f1f39e
EA
576# ifndef LA_TYPE
577# define LA_TYPE LA_FLOAT
578# endif
4e93bc5c 579# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
a74fd615
EA
580# ifndef IDENTPROTO
581# define IDENTPROTO 0 /* TCP/IP implementation is broken */
582# endif
ac3f694f
EA
583# undef WEXITSTATUS
584# undef WIFEXITED
585typedef short pid_t;
586extern int errno;
35f1f39e
EA
587#endif
588
2b09dd75 589
ba6514e2
EA
590/*
591** SCO Unix
8e01bd08
EA
592**
593** This includes two parts -- the first is for SCO Open Server 3.2v4
594** (contributed by Philippe Brand <phb@colombo.telesys-innov.fr>).
595** The second is, I believe, for an older version.
ba6514e2
EA
596*/
597
8e01bd08
EA
598#ifdef _SCO_unix_4_2
599# define _SCO_unix_
600# define HASSETREUID 1 /* has setreuid(2) call */
3f23b98b 601# define NEEDFSYNC 1 /* needs the fsync(2) call stub */
4e93bc5c
EA
602# define _PATH_UNIX "/unix"
603# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
8e01bd08
EA
604# ifndef _PATH_SENDMAILPID
605# define _PATH_SENDMAILPID "/etc/sendmail.pid"
606# endif
607#endif
608
7621e399
EA
609#ifdef _SCO_unix_
610# define SYSTEM5 1 /* include all the System V defines */
39270cfd 611# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
175dac04 612# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
7621e399
EA
613# define FORK fork
614# define MAXPATHLEN PATHSIZE
fe3849ea 615# define LA_TYPE LA_SHORT
e8dfcb16 616# define SFS_TYPE SFS_4ARGS /* use <sys/statfs.h> 4-arg impl */
b2b48b69 617# define SFS_BAVAIL f_bfree /* alternate field name */
f7311261 618# define TZ_TYPE TZ_TM_NAME /* use tm->tm_name */
a40faef5 619# define NETUNIX 0 /* no unix domain socket support */
33d59d37
EA
620#endif
621
2b09dd75 622
e3a8e3e0
EA
623/*
624** ISC (SunSoft) Unix.
625**
626** Contributed by J.J. Bailey <jjb@jagware.bcc.com>
627*/
628
629#ifdef ISC_UNIX
630# include <net/errno.h>
9cd7141b
EA
631# include <sys/stream.h> /* needed for IP_SRCROUTE */
632# include <sys/bsdtypes.h>
e3a8e3e0
EA
633# define SYSTEM5 1 /* include all the System V defines */
634# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
635# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
636# define HASSETREUID 1 /* has setreuid(2) call */
637# define NEEDFSYNC 1 /* needs the fsync(2) call stub */
a40faef5 638# define NETUNIX 0 /* no unix domain socket support */
e3a8e3e0
EA
639# define FORK fork
640# define MAXPATHLEN 1024
641# define LA_TYPE LA_SHORT
642# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
643# define SFS_BAVAIL f_bfree /* alternate field name */
4e93bc5c
EA
644# define _PATH_UNIX "/unix"
645# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
e3a8e3e0
EA
646# ifndef _PATH_SENDMAILPID
647# define _PATH_SENDMAILPID "/etc/sendmail.pid"
648# endif
649
650typedef short pid_t;
651
652#endif
653
654
4d645e29
EA
655/*
656** Altos System V.
657** Contributed by Tim Rice <timr@crl.com>.
658*/
659
660#ifdef ALTOS_SYS_V
661# include <limits.h>
662# define SYSTEM5 1 /* include all the System V defines */
663# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
664# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
665# define WAITUNION 1 /* use "union wait" as wait argument type */
666# define NEEDFSYNC 1 /* no fsync(2) in system library */
667# define FORK fork
668# define MAXPATHLEN PATHSIZE
669# define LA_TYPE LA_SHORT
670# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
b2b48b69 671# define SFS_BAVAIL f_bfree /* alternate field name */
4d645e29 672# define TZ_TYPE TZ_TM_NAME /* use tm->tm_name */
a40faef5 673# define NETUNIX 0 /* no unix domain socket support */
4d645e29
EA
674# undef WIFEXITED
675# undef WEXITSTATUS
676# define strtoul strtol /* gcc library bogosity */
677
678typedef unsigned short uid_t;
679typedef unsigned short gid_t;
680typedef short pid_t;
681#endif
682
683
33d59d37
EA
684/*
685** ConvexOS 11.0 and later
f0bb212b
EA
686**
687** "Todd C. Miller" <millert@mroe.cs.colorado.edu> claims this
688** works on 9.1 as well.
33d59d37
EA
689*/
690
691#ifdef _CONVEX_SOURCE
0c31d7be
EA
692# define BSD 1 /* include all the BSD defines */
693# define HASUNAME 1 /* use System V uname(2) system call */
33d59d37 694# define HASSETSID 1 /* has POSIX setsid(2) call */
0c31d7be 695# define NEEDGETOPT 1 /* need replacement for getopt(3) */
d947d433 696# define IP_SRCROUTE 0 /* Something is broken with getsockopt() */
33d59d37 697# define LA_TYPE LA_FLOAT
5e0e0f8f 698# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
4e93bc5c 699# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
f0bb212b
EA
700# ifndef S_IREAD
701# define S_IREAD _S_IREAD
702# define S_IWRITE _S_IWRITE
703# define S_IEXEC _S_IEXEC
704# define S_IFMT _S_IFMT
705# define S_IFCHR _S_IFCHR
706# define S_IFBLK _S_IFBLK
707# endif
a74fd615
EA
708# ifndef IDENTPROTO
709# define IDENTPROTO 0 /* TCP/IP implementation is broken */
710# endif
33d59d37
EA
711#endif
712
2b09dd75 713
33d59d37 714/*
fa323968 715** RISC/os 4.52
33d59d37 716**
fa323968 717** Gives a ton of warning messages, but otherwise compiles.
33d59d37
EA
718*/
719
0fc3fb21 720#ifdef RISCOS
fa323968 721
33d59d37 722# define HASUNSETENV 1 /* has unsetenv(3) call */
534256ae 723# ifndef HASFLOCK
72af7ebb
EA
724# define HASFLOCK 1 /* has flock(2) call */
725# endif
fa323968
EA
726# define WAITUNION 1 /* use "union wait" as wait argument type */
727# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
33d59d37
EA
728# define LA_TYPE LA_INT
729# define LA_AVENRUN "avenrun"
730# define _PATH_UNIX "/unix"
fa323968
EA
731# undef WIFEXITED
732
733# define setpgid setpgrp
734
735extern int errno;
736typedef int pid_t;
737#define SIGFUNC_DEFINED
738typedef int (*sigfunc_t)();
739extern char *getenv();
740extern void *malloc();
741
ed0b2c1b
EA
742#endif
743
2b09dd75 744
0d2faefc
EA
745/*
746** Linux 0.99pl10 and above...
a1a01683
EA
747**
748** Thanks to, in reverse order of contact:
749**
750** John Kennedy <warlock@csuchico.edu>
5d944135 751** Andrew Pam <avatar@aus.xanadu.com>
a1a01683
EA
752** Florian La Roche <rzsfl@rz.uni-sb.de>
753** Karl London <karl@borg.demon.co.uk>
754**
a9c4e8d5
EA
755** Last compiled against: [05/25/95 @ 11:39:31 AM (Thursday)]
756** sendmail 8.7.b.0 named 4.9.3-beta17 db-1.85
757** gcc 2.6.4-950518 libc-5.0.9 linux 1.2.8
0d2faefc
EA
758*/
759
404f4d13 760#ifdef __linux__
402003b1 761# define BSD 1 /* include BSD defines */
0d2faefc 762# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
402003b1 763# define HASUNAME 1 /* use System V uname(2) system call */
c2edb205 764# define HASUNSETENV 1 /* has unsetenv(3) call */
402003b1 765# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
a1a01683 766# define GIDSET_T gid_t /* from <linux/types.h> */
375679c6 767# define HASGETUSERSHELL 0 /* getusershell(3) broken in Slackware 2.0 */
a9c4e8d5 768# define IP_SRCROUTE 0 /* linux <= 1.2.8 doesn't support IP_OPTIONS */
0668ff23
EA
769# ifndef HASFLOCK
770# define HASFLOCK 0 /* flock(2) is broken after 0.99.13 */
771# endif
0d2faefc 772# ifndef LA_TYPE
ff065a83 773# define LA_TYPE LA_PROCSTR
0d2faefc 774# endif
a1a01683 775# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() impl */
5d944135
EA
776# ifndef _PATH_SENDMAILPID
777# define _PATH_SENDMAILPID "/var/run/sendmail.pid"
778# endif
779# define TZ_TYPE TZ_TNAME
72ef208d 780# include <sys/sysmacros.h>
a1a01683 781# undef atol /* wounded in <stdlib.h> */
0d2faefc
EA
782#endif
783
784
178464cb
EA
785/*
786** DELL SVR4 Issue 2.2, and others
787** From Kimmo Suominen <kim@grendel.lut.fi>
788**
789** It's on #ifdef DELL_SVR4 because Solaris also gets __svr4__
790** defined, and the definitions conflict.
69bed929
EA
791**
792** Peter Wemm <peter@perth.DIALix.oz.au> claims that the setreuid
793** trick works on DELL 2.2 (SVR4.0/386 version 4.0) and ESIX 4.0.3A
794** (SVR4.0/386 version 3.0).
178464cb
EA
795*/
796
797#ifdef DELL_SVR4
f361504a
EA
798 /* no changes necessary */
799 /* see general __svr4__ defines below */
178464cb
EA
800#endif
801
802
c2edb205
EA
803/*
804** Apple A/UX 3.0
805*/
806
807#ifdef _AUX_SOURCE
25a722b1 808# include <sys/sysmacros.h>
c2edb205 809# define BSD /* has BSD routines */
07c6107b 810# define HASSETRLIMIT 0 /* ... but not setrlimit(2) */
02e07c7e 811# define BROKEN_RES_SEARCH 1 /* res_search(unknown) returns h_errno=0 */
c2edb205 812# define HASUNAME 1 /* use System V uname(2) system call */
c2edb205 813# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
53335960 814# define SIGFUNC_DEFINED /* sigfunc_t already defined */
a74fd615
EA
815# ifndef IDENTPROTO
816# define IDENTPROTO 0 /* TCP/IP implementation is broken */
817# endif
c2edb205 818# define FORK fork
c2edb205 819# ifndef LA_TYPE
07c6107b
EA
820# define LA_TYPE LA_INT
821# define FSHIFT 16
c2edb205 822# endif
07c6107b 823# define LA_AVENRUN "avenrun"
5e0e0f8f 824# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
07c6107b
EA
825# define TZ_TYPE TZ_TZNAME
826# ifndef _PATH_UNIX
4e93bc5c 827# define _PATH_UNIX "/unix" /* should be in <paths.h> */
07c6107b 828# endif
4e93bc5c 829# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
96e003d2
EA
830# undef WIFEXITED
831# undef WEXITSTATUS
c2edb205
EA
832#endif
833
834
82530719
EA
835/*
836** Encore UMAX V
837**
838** Not extensively tested.
839*/
840
841#ifdef UMAXV
842# include <limits.h>
843# define HASUNAME 1 /* use System V uname(2) system call */
82530719
EA
844# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
845# define HASINITGROUPS 1 /* has initgroups(3) call */
1ee33f7d 846# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
82530719
EA
847# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
848# define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */
849# define FORK fork /* no vfork(2) primitive available */
5e0e0f8f 850# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
82530719
EA
851# define MAXPATHLEN PATH_MAX
852extern struct passwd *getpwent(), *getpwnam(), *getpwuid();
853extern struct group *getgrent(), *getgrnam(), *getgrgid();
854# undef WIFEXITED
855# undef WEXITSTATUS
856#endif
857
858
31c3ae15
EA
859/*
860** Stardent Titan 3000 running TitanOS 4.2.
861**
862** Must be compiled in "cc -43" mode.
863**
fce21cb9 864** From Kate Hedstrom <kate@ahab.rutgers.edu>.
31c3ae15
EA
865**
866** Note the tweaking below after the BSD defines are set.
867*/
868
869#ifdef titan
870# define setpgid setpgrp
871typedef int pid_t;
872# undef WIFEXITED
873# undef WEXITSTATUS
874#endif
875
876
c6bd47b4
EA
877/*
878** Sequent DYNIX 3.2.0
879**
880** From Jim Davis <jdavis@cs.arizona.edu>.
881*/
882
883#ifdef sequent
efadb8ee 884
c6bd47b4
EA
885# define BSD 1
886# define HASUNSETENV 1
887# define BSD4_3 1 /* to get signal() in conf.c */
888# define WAITUNION 1
889# define LA_TYPE LA_FLOAT
890# ifdef _POSIX_VERSION
891# undef _POSIX_VERSION /* set in <unistd.h> */
892# endif
893# undef HASSETVBUF /* don't actually have setvbuf(3) */
894# define setpgid setpgrp
895
896/* Have to redefine WIFEXITED to take an int, to work with waitfor() */
897# undef WIFEXITED
898# define WIFEXITED(s) (((union wait*)&(s))->w_stopval != WSTOPPED && \
899 ((union wait*)&(s))->w_termsig == 0)
900# define WEXITSTATUS(s) (((union wait*)&(s))->w_retcode)
901typedef int pid_t;
902# define isgraph(c) (isprint(c) && (c != ' '))
903
28462cf3
EA
904# ifndef IDENTPROTO
905# define IDENTPROTO 0 /* TCP/IP implementation is broken */
906# endif
907
c6bd47b4 908# ifndef _PATH_UNIX
4e93bc5c 909# define _PATH_UNIX "/dynix"
c6bd47b4 910# endif
4e93bc5c 911# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
c6bd47b4
EA
912
913#endif
914
915
efadb8ee
EA
916/*
917** Sequent DYNIX/ptx v2.0 (and higher)
918**
919** For DYNIX/ptx v1.x, undefine HASSETREUID.
920**
921** From Tim Wright <timw@sequent.com>.
922*/
923
924#ifdef _SEQUENT_
925# define SYSTEM5 1 /* include all the System V defines */
926# define HASSETSID 1 /* has POSIX setsid(2) call */
927# define HASINITGROUPS 1 /* has initgroups(3) call */
928# define HASSETREUID 1 /* has setreuid(2) call */
929# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
930# define GIDSET_T gid_t
931# define LA_TYPE LA_INT
932# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
ddeafa3b 933# define SPT_TYPE SPT_NONE /* don't use setproctitle */
28462cf3
EA
934# ifndef IDENTPROTO
935# define IDENTPROTO 0 /* TCP/IP implementation is broken */
936# endif
4e93bc5c 937# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
efadb8ee
EA
938# ifndef _PATH_SENDMAILPID
939# define _PATH_SENDMAILPID "/etc/sendmail.pid"
940# endif
941#endif
942
943
250441f6
EA
944/*
945** Cray Unicos
946**
947** Ported by David L. Kensiski, Sterling Sofware <kensiski@nas.nasa.gov>
948*/
949
950#ifdef UNICOS
951# define SYSTEM5 1 /* include all the System V defines */
952# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
250441f6
EA
953# define MAXPATHLEN PATHSIZE
954# define LA_TYPE LA_ZERO
5e0e0f8f 955# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
b2b48b69 956# define SFS_BAVAIL f_bfree /* alternate field name */
250441f6
EA
957#endif
958
c6bd47b4 959
548197f7
EA
960/*
961** Apollo DomainOS
962**
963** From Todd Martin <tmartint@tus.ssi1.com> & Don Lewis <gdonl@gv.ssi1.com>
e7261663 964**
548197f7
EA
965** 15 Jan 1994
966**
967*/
968
969#ifdef apollo
548197f7
EA
970# define HASSETREUID 1 /* has setreuid(2) call */
971# define HASINITGROUPS 1 /* has initgroups(2) call */
ddeafa3b 972# define SPT_TYPE SPT_NONE /* don't use setproctitle */
548197f7 973# define LA_TYPE LA_SUBR /* use getloadavg.c */
f243158a 974# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
b2b48b69 975# define SFS_BAVAIL f_bfree /* alternate field name */
4e93bc5c 976# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
548197f7
EA
977# ifndef _PATH_SENDMAILPID
978# define _PATH_SENDMAILPID "/etc/sendmail.pid"
979# endif
980# undef S_IFSOCK /* S_IFSOCK and S_IFIFO are the same */
981# undef S_IFIFO
982# define S_IFIFO 0010000
983# ifndef IDENTPROTO
984# define IDENTPROTO 0 /* TCP/IP implementation is broken */
985# endif
e7261663 986#endif
548197f7
EA
987
988
41915d28 989/*
4579ffd9 990** UnixWare 1.1.2.
41915d28 991**
3dc26a39 992** Updated by Petr Lampa <lampa@fee.vutbr.cz>.
41915d28
EA
993** From Evan Champion <evanc@spatial.synapse.org>.
994*/
995
996#ifdef UNIXWARE
d4079d2e 997# include <sys/mkdev.h>
41915d28 998# define SYSTEM5 1
4579ffd9 999# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
4579ffd9
EA
1000# define HASSETREUID 1
1001# define HASSETSID 1
1002# define HASINITGROUPS 1
1003# define GIDSET_T gid_t
1004# define SLEEP_T unsigned
41915d28
EA
1005# define SFS_TYPE SFS_STATVFS
1006# define LA_TYPE LA_ZERO
1007# undef WIFEXITED
1008# undef WEXITSTATUS
1009# define _PATH_UNIX "/unix"
4e93bc5c 1010# define _PATH_VENDOR_CF "/usr/ucblib/sendmail.cf"
41915d28
EA
1011# ifndef _PATH_SENDMAILPID
1012# define _PATH_SENDMAILPID "/usr/ucblib/sendmail.pid"
1013# endif
1014# define SYSLOG_BUFSIZE 128
1015#endif
1016
1017
8b223875
EA
1018/*
1019** Intergraph CLIX 3.1
1020**
1021** From Paul Southworth <pauls@locust.cic.net>
1022*/
1023
1024#ifdef CLIX
1025# define SYSTEM5 1 /* looks like System V */
41915d28
EA
1026# ifndef HASGETUSERSHELL
1027# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
1028# endif
8b223875
EA
1029# define DEV_BSIZE 512 /* device block size not defined */
1030# define GIDSET_T gid_t
1031# undef LOG /* syslog not available */
1032# define NEEDFSYNC 1 /* no fsync in system library */
1033# define GETSHORT _getshort
1034#endif
1035
1036
01e1d6e5
EA
1037/*
1038** NCR 3000 Series (SysVr4)
1039**
264ee34f 1040** From Kevin Darcy <kevin@tech.mis.cfc.com>.
01e1d6e5
EA
1041*/
1042
1043#ifdef NCR3000
569a0363 1044# include <sys/sockio.h>
01e1d6e5 1045# define __svr4__
d947d433 1046# define IP_SRCROUTE 0 /* Something is broken with getsockopt() */
01e1d6e5
EA
1047# undef BSD
1048# define LA_AVENRUN "avenrun"
1049#endif
01e1d6e5
EA
1050
1051
264ee34f
EA
1052/*
1053** Tandem NonStop-UX SVR4
1054**
1055** From Rick McCarty <mccarty@mpd.tandem.com>.
1056*/
1057
1058#ifdef NonStop_UX_BXX
1059# define __svr4__
1060#endif
1061
548197f7 1062
d576f75d
EA
1063/*
1064** Hitachi 3050R & 3050RX Workstations running HI-UX/WE2.
1065**
1066** Tested for 1.04 and 1.03
1067** From Akihiro Hashimoto ("Hash") <hash@dominic.ipc.chiba-u.ac.jp>.
1068*/
1069
1070#ifdef __H3050R
1071# define SYSTEM5 1 /* include all the System V defines */
1072# define HASINITGROUPS 1 /* has initgroups(3) call */
1073# define setreuid(r, e) setresuid(r, e, -1)
1074# define LA_TYPE LA_FLOAT
1075# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
1076# define HASSETVBUF /* HI-UX has no setlinebuf */
1077# ifndef GIDSET_T
1078# define GIDSET_T gid_t
1079# endif
1080# ifndef _PATH_UNIX
4e93bc5c 1081# define _PATH_UNIX "/HI-UX"
d576f75d 1082# endif
4e93bc5c 1083# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
d576f75d
EA
1084# ifndef IDENTPROTO
1085# define IDENTPROTO 0 /* TCP/IP implementation is broken */
1086# endif
1087# ifndef HASGETUSERSHELL
1088# define HASGETUSERSHELL 0 /* getusershell(3) causes core dumps */
1089# endif
1090
1091/* avoid m_flags conflict between db.h & sys/sysmacros.h on HIUX 3050 */
1092# undef m_flags
1093
1094# ifdef __STDC__
1095extern int syslog(int, char *, ...);
1096# endif
1097
1098#endif
1099
1100
3a15d11b
EA
1101/*
1102** Amdahl UTS System V 2.1.5 (SVr3-based)
1103**
1104** From: Janet Jackson <janet@dialix.oz.au>.
1105*/
1106
1107#ifdef _UTS
1108# include <sys/sysmacros.h>
a40faef5 1109# undef HASLSTAT /* has symlinks, but they cause problems */
3a15d11b
EA
1110# define NEEDFSYNC 1 /* system fsync(2) fails on non-EFS filesys */
1111# define SYS5SIGNALS 1 /* System V signal semantics */
1112# define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */
1113# define HASUNAME 1 /* use System V uname(2) system call */
1114# define HASINITGROUPS 1 /* has initgroups(3) function */
1115# define HASSETVBUF 1 /* has setvbuf(3) function */
1116# define HASSIGSETMASK 0 /* does not have sigsetmask(2) function */
1117# ifndef HASGETUSERSHELL
1118# define HASGETUSERSHELL 0 /* does not have getusershell(3) function */
1119# endif
1120# define GIDSET_T gid_t /* type of 2nd arg to getgroups(2) isn't int */
1121# define LA_TYPE LA_ZERO /* doesn't have load average */
1122# define SFS_TYPE SFS_4ARGS /* use 4-arg statfs() */
b2b48b69 1123# define SFS_BAVAIL f_bfree /* alternate field name */
4e93bc5c
EA
1124# define _PATH_UNIX "/unix"
1125# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
3a15d11b
EA
1126#endif
1127
1ead4c2f
EA
1128/*
1129** Cray Computer Corporation's CSOS
1130**
297d9fc9 1131** From Scott Bolte <scott@craycos.com>.
1ead4c2f 1132*/
3a15d11b 1133
1ead4c2f
EA
1134#ifdef _CRAYCOM
1135# define SYSTEM5 1 /* include all the System V defines */
1136# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
1137# define NEEDFSYNC 1 /* no fsync in system library */
1138# define MAXPATHLEN PATHSIZE
1139# define LA_TYPE LA_ZERO
1140# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
b2b48b69 1141# define SFS_BAVAIL f_bfree /* alternate field name */
1ead4c2f
EA
1142# define _POSIX_CHOWN_RESTRICTED -1
1143extern struct group *getgrent(), *getgrnam(), *getgrgid();
1144#endif
3a15d11b 1145
178464cb 1146
550fee58
EA
1147/*
1148** Sony NEWS-OS 4.2.1R and 6.0.3
297d9fc9
EA
1149**
1150** From Motonori NAKAMURA <motonori@cs.ritsumei.ac.jp>.
550fee58
EA
1151*/
1152
1153#ifdef sony_news
1154# ifndef __svr4
1155 /* NEWS-OS 4.2.1R */
1156# ifndef BSD
1157# define BSD /* has BSD routines */
1158# endif
1159# define HASUNSETENV 1 /* has unsetenv(2) call */
1160# undef HASSETVBUF /* don't actually have setvbuf(3) */
1161# define WAITUNION 1 /* use "union wait" as wait argument type */
1162# define LA_TYPE LA_INT
1163# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
1164# ifndef HASFLOCK
1165# define HASFLOCK 1 /* has flock(2) call */
1166# endif
1167# define setpgid setpgrp
1168# undef WIFEXITED
1169# undef WEXITSTATUS
1170typedef int pid_t;
1171typedef int (*sigfunc_t)();
1172# define SIGFUNC_DEFINED
1173
1174# else
1175 /* NEWS-OS 6.0.3 with /bin/cc */
bd8680d1
EA
1176# ifndef __svr4__
1177# define __svr4__ /* use all System V Releae 4 defines below */
1178# endif
550fee58
EA
1179# define HASSETSID 1 /* has Posix setsid(2) call */
1180# define HASGETUSERSHELL 1 /* DOES have getusershell(3) call in libc */
297d9fc9 1181# define LA_TYPE LA_READKSYM /* use MIOC_READKSYM ioctl */
d66e21c5
EA
1182# ifndef SPT_TYPE
1183# define SPT_TYPE SPT_SYSMIPS /* use sysmips() (OS 6.0.2 or later) */
1184# endif
550fee58 1185# define GIDSET_T gid_t
550fee58
EA
1186# undef WIFEXITED
1187# undef WEXITSTATUS
bd8680d1
EA
1188# ifndef SYSLOG_BUFSIZE
1189# define SYSLOG_BUFSIZE 1024
1190# endif
4e93bc5c
EA
1191# define _PATH_UNIX "/stand/unix"
1192# define _PATH_VENDOR_CF "/etc/mail/sendmail.cf"
550fee58
EA
1193# ifndef _PATH_SENDMAILPID
1194# define _PATH_SENDMAILPID "/etc/mail/sendmail.pid"
1195# endif
1196
1197# endif
1198#endif
1199
1200
1201/*
1202** Omron LUNA/UNIOS-B 3.0, LUNA2/Mach and LUNA88K Mach
297d9fc9
EA
1203**
1204** From Motonori NAKAMURA <motonori@cs.ritsumei.ac.jp>.
550fee58
EA
1205*/
1206
1207#ifdef luna
1208# ifndef IDENTPROTO
1209# define IDENTPROTO 0 /* TCP/IP implementation is broken */
1210# endif
1211# ifdef uniosb
ca5a4f7e 1212# include <sys/time.h>
550fee58
EA
1213# define NEEDVPRINTF 1 /* need a replacement for vprintf(3) */
1214# endif
d66e21c5
EA
1215# define HASUNSETENV 1 /* has unsetenv(2) call */
1216# define NEEDPUTENV 1 /* need putenv(3) call */
550fee58 1217# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
2fca0e18 1218# define NEEDSTRSTR 1 /* need emulation of the strstr(3) call */
550fee58
EA
1219# define WAITUNION 1 /* use "union wait" as wait argument type */
1220# ifdef uniosb
1221# define LA_TYPE LA_INT
1222# endif
1223# ifdef luna2m
1224# define LA_TYPE LA_SUBR
1225# endif
1226# ifdef luna88k
1227# define LA_TYPE LA_INT
1228# endif
1229# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
1230# define setpgid setpgrp
1231# undef WIFEXITED
1232# undef WEXITSTATUS
1233typedef int pid_t;
1234typedef int (*sigfunc_t)();
1235# define SIGFUNC_DEFINED
1236extern char *getenv();
1237extern int errno;
4e93bc5c 1238# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
550fee58
EA
1239#endif
1240
1241
1242/*
297d9fc9 1243** NEC EWS-UX/V 4.2 (with /usr/ucb/cc)
550fee58 1244**
297d9fc9 1245** From Motonori NAKAMURA <motonori@cs.ritsumei.ac.jp>.
550fee58
EA
1246*/
1247
1248#ifdef nec_ews_svr4
ca5a4f7e
EA
1249# ifndef __svr4__
1250# define __svr4__ /* use all System V Releae 4 defines below */
1251# endif
550fee58 1252# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
550fee58 1253# define HASSETSID 1 /* has Posix setsid(2) call */
297d9fc9 1254# define LA_TYPE LA_READKSYM /* use MIOC_READSYM ioctl */
550fee58
EA
1255# define SFS_TYPE SFS_USTAT /* use System V ustat(2) syscall */
1256# define GIDSET_T gid_t
550fee58
EA
1257# undef WIFEXITED
1258# undef WEXITSTATUS
ca5a4f7e 1259# define NAMELISTMASK 0x7fffffff /* mask for nlist() values */
550fee58
EA
1260#endif
1261
1262
1263
ba6514e2 1264/**********************************************************************
fd57f063 1265** End of Per-Operating System defines
ba6514e2 1266**********************************************************************/
04c2baef 1267\f/**********************************************************************
b4cd00ff
EA
1268** More general defines
1269**********************************************************************/
1270
33d59d37
EA
1271/* general BSD defines */
1272#ifdef BSD
39270cfd
EA
1273# define HASGETDTABLESIZE 1 /* has getdtablesize(2) call */
1274# define HASSETREUID 1 /* has setreuid(2) call */
1d560021 1275# define HASINITGROUPS 1 /* has initgroups(3) call */
d947d433
EA
1276# ifndef IP_SRCROUTE
1277# define IP_SRCROUTE 1 /* can check IP source routing */
1278# endif
230ac0bd
EA
1279# ifndef HASSETRLIMIT
1280# define HASSETRLIMIT 1 /* has setrlimit(2) call */
1281# endif
72af7ebb
EA
1282# ifndef HASFLOCK
1283# define HASFLOCK 1 /* has flock(2) call */
1284# endif
a2ba2f44 1285# ifndef TZ_TYPE
f7311261 1286# define TZ_TYPE TZ_TM_ZONE /* use tm->tm_zone variable */
a2ba2f44 1287# endif
33d59d37
EA
1288#endif
1289
f361504a
EA
1290/* general System V Release 4 defines */
1291#ifdef __svr4__
1292# define SYSTEM5 1
04c2baef 1293# define USESETEUID 1 /* has useable seteuid(2) call */
1d560021 1294# define HASINITGROUPS 1 /* has initgroups(3) call */
8ffabadc 1295# define BSD_COMP 1 /* get BSD ioctl calls */
1d560021
EA
1296# ifndef HASSETRLIMIT
1297# define HASSETRLIMIT 1 /* has setrlimit(2) call */
1298# endif
1ee33f7d
EA
1299# ifndef HASGETUSERSHELL
1300# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
9ceb18fe 1301# endif
f361504a
EA
1302
1303# ifndef _PATH_UNIX
1304# define _PATH_UNIX "/unix"
1305# endif
4e93bc5c 1306# define _PATH_VENDOR_CF "/usr/ucblib/sendmail.cf"
f361504a
EA
1307# ifndef _PATH_SENDMAILPID
1308# define _PATH_SENDMAILPID "/usr/ucblib/sendmail.pid"
1309# endif
1310# ifndef SYSLOG_BUFSIZE
1311# define SYSLOG_BUFSIZE 128
1312# endif
25e2468c
EA
1313# ifndef SFS_TYPE
1314# define SFS_TYPE SFS_STATVFS
1315# endif
f361504a
EA
1316#endif
1317
fd57f063 1318/* general System V defines */
402003b1 1319#ifdef SYSTEM5
8988dfd3 1320# include <sys/sysmacros.h>
b4cd00ff 1321# define HASUNAME 1 /* use System V uname(2) system call */
82530719 1322# define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */
c6bd47b4 1323# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
230ac0bd
EA
1324# ifndef HASULIMIT
1325# define HASULIMIT 1 /* has the ulimit(2) syscall */
1326# endif
33d59d37 1327# ifndef LA_TYPE
b5aacac9
EA
1328# ifdef MIOC_READKSYM
1329# define LA_TYPE LA_READKSYM /* use MIOC_READKSYM ioctl */
1330# else
1331# define LA_TYPE LA_INT /* assume integer load average */
1332# endif
5e0e0f8f
EA
1333# endif
1334# ifndef SFS_TYPE
1335# define SFS_TYPE SFS_USTAT /* use System V ustat(2) syscall */
33d59d37 1336# endif
a2ba2f44 1337# ifndef TZ_TYPE
f7311261 1338# define TZ_TYPE TZ_TZNAME /* use tzname[] vector */
a2ba2f44 1339# endif
e3a8e3e0
EA
1340# define bcopy(s, d, l) (memmove((d), (s), (l)))
1341# define bzero(d, l) (memset((d), '\0', (l)))
1342# define bcmp(s, d, l) (memcmp((s), (d), (l)))
402003b1 1343#endif
fd57f063 1344
b4cd00ff
EA
1345/* general POSIX defines */
1346#ifdef _POSIX_VERSION
fe3849ea
EA
1347# define HASSETSID 1 /* has Posix setsid(2) call */
1348# define HASWAITPID 1 /* has Posix waitpid(2) call */
04c2baef
EA
1349# if _POSIX_VERSION >= 199500 && !defined(USESETEUID)
1350# define USESETEUID 1 /* has useable seteuid(2) call */
1351# endif
b4cd00ff 1352#endif
04c2baef 1353\f/*
1ead4c2f
EA
1354** Tweaking for systems that (for example) claim to be BSD or POSIX
1355** but don't have all the standard BSD or POSIX routines (boo hiss).
31c3ae15
EA
1356*/
1357
1358#ifdef titan
1359# undef HASINITGROUPS /* doesn't have initgroups(3) call */
1360#endif
1361
1ead4c2f
EA
1362#ifdef _CRAYCOM
1363# undef HASSETSID /* despite POSIX claim, doesn't have setsid */
1364#endif
1365
e3a8e3e0
EA
1366#ifdef ISC_UNIX
1367# undef bcopy /* despite SystemV claim, uses BSD bcopy */
1368#endif
1369
1370#ifdef ALTOS_SYS_V
1371# undef bcopy /* despite SystemV claim, uses BSD bcopy */
1372# undef bzero /* despite SystemV claim, uses BSD bzero */
1373# undef bcmp /* despite SystemV claim, uses BSD bcmp */
1374#endif
1375
72af7ebb 1376
a74fd615
EA
1377/*
1378** Due to a "feature" in some operating systems such as Ultrix 4.3 and
1379** HPUX 8.0, if you receive a "No route to host" message (ICMP message
1380** ICMP_UNREACH_HOST) on _any_ connection, all connections to that host
1381** are closed. Some firewalls return this error if you try to connect
1382** to the IDENT port (113), so you can't receive email from these hosts
1383** on these systems. The firewall really should use a more specific
1384** message such as ICMP_UNREACH_PROTOCOL or _PORT or _NET_PROHIB. If
1385** not explicitly set to zero above, default it on.
1386*/
1387
1388#ifndef IDENTPROTO
1389# define IDENTPROTO 1 /* use IDENT proto (RFC 1413) */
1390#endif
1391
298b05de
EA
1392#ifndef IP_SRCROUTE
1393# define IP_SRCROUTE 1 /* Detect IP source routing */
1394#endif
1395
1ee33f7d
EA
1396#ifndef HASGETUSERSHELL
1397# define HASGETUSERSHELL 1 /* libc has getusershell(3) call */
9ceb18fe
EA
1398#endif
1399
a40faef5
EA
1400#ifndef NETUNIX
1401# define NETUNIX 1 /* include unix domain support */
1402#endif
1403
72af7ebb
EA
1404#ifndef HASFLOCK
1405# define HASFLOCK 0 /* assume no flock(2) support */
1406#endif
1407
04c2baef
EA
1408#ifndef HASSETREUID
1409# define HASSETREUID 0 /* assume no setreuid(2) call */
1410#endif
1411
1412#ifndef USESETEUID
1413# define USESETEUID 0 /* assume no seteuid(2) call or no saved ids */
1414#endif
1415
230ac0bd
EA
1416#ifndef HASSETRLIMIT
1417# define HASSETRLIMIT 0 /* assume no setrlimit(2) support */
1418#endif
1419
1420#ifndef HASULIMIT
1421# define HASULIMIT 0 /* assume no ulimit(2) support */
1422#endif
1423
11c14c72
EA
1424#ifndef OLD_NEWDB
1425# define OLD_NEWDB 0 /* assume newer version of newdb */
1426#endif
1427
3a15d11b
EA
1428/* heuristic setting of HASSETSIGMASK; can override above */
1429#ifndef HASSIGSETMASK
1430# ifdef SIGVTALRM
1431# define HASSETSIGMASK 1
1432# else
1433# define HASSETSIGMASK 0
1434# endif
1435#endif
1436
04c2baef
EA
1437/*
1438** If no type for argument two of getgroups call is defined, assume
1439** it's an integer -- unfortunately, there seem to be several choices
1440** here.
1441*/
1442
1443#ifndef GIDSET_T
1444# define GIDSET_T int
1445#endif
1446
782a2f97
EA
1447#ifndef UID_T
1448# define UID_T uid_t
1449#endif
1450
2604d017
EA
1451#ifndef SIZE_T
1452# define SIZE_T size_t
1453#endif
1454
782a2f97
EA
1455#ifndef ARGV_T
1456# define ARGV_T char **
1457#endif
d947d433 1458\f/**********************************************************************
e6245c7e
EA
1459** Remaining definitions should never have to be changed. They are
1460** primarily to provide back compatibility for older systems -- for
6070681d 1461** example, it includes some POSIX compatibility definitions
2295903c 1462**********************************************************************/
e6245c7e 1463
bd3dddbf
EA
1464/* System 5 compatibility */
1465#ifndef S_ISREG
fce21cb9
EA
1466# define S_ISREG(foo) ((foo & S_IFMT) == S_IFREG)
1467#endif
1468#if !defined(S_ISLNK) && defined(S_IFLNK)
1469# define S_ISLNK(foo) ((foo & S_IFMT) == S_IFLNK)
bd3dddbf 1470#endif
d52f8819
EA
1471#ifndef S_IWUSR
1472# define S_IWUSR 0200
1473#endif
bd3dddbf 1474#ifndef S_IWGRP
d52f8819 1475# define S_IWGRP 0020
bd3dddbf
EA
1476#endif
1477#ifndef S_IWOTH
d52f8819 1478# define S_IWOTH 0002
bd3dddbf
EA
1479#endif
1480
030ae776
EA
1481/*
1482** Older systems don't have this error code -- it should be in
1483** /usr/include/sysexits.h.
1484*/
1485
1486# ifndef EX_CONFIG
1487# define EX_CONFIG 78 /* configuration error */
1488# endif
5229f34d 1489
fe3849ea
EA
1490/* pseudo-code used in server SMTP */
1491# define EX_QUIT 22 /* drop out of server immediately */
1492
1493
92f2b65e
EA
1494/*
1495** These are used in a few cases where we need some special
1496** error codes, but where the system doesn't provide something
1497** reasonable. They are printed in errstring.
1498*/
1499
1500#ifndef E_PSEUDOBASE
1501# define E_PSEUDOBASE 256
1502#endif
1503
1504#define EOPENTIMEOUT (E_PSEUDOBASE + 0) /* timeout on open */
1505#define E_DNSBASE (E_PSEUDOBASE + 20) /* base for DNS h_errno */
1506
0639fd0c
EA
1507/* type of arbitrary pointer */
1508#ifndef ARBPTR_T
1509# define ARBPTR_T void *
1510#endif
1511
ed0b2c1b
EA
1512#ifndef __P
1513# include "cdefs.h"
1514#endif
1515
648eb46e
EA
1516#if NAMED_BIND
1517# include <arpa/nameser.h>
264ee34f
EA
1518# ifdef __svr4__
1519# ifdef NOERROR
1520# undef NOERROR /* avoid compiler conflict with stream.h */
1521# endif
1522# endif
648eb46e
EA
1523#endif
1524
d2dc4dd0
EA
1525/*
1526** The size of an IP address -- can't use sizeof because of problems
1527** on Crays, where everything is 64 bits. This will break if/when
1528** IP addresses are expanded to eight bytes.
1529*/
1530
648eb46e
EA
1531#ifndef INADDRSZ
1532# define INADDRSZ 4
1533#endif
1534
1535/*
1536** The size of various known types -- for reading network protocols.
1537** Again, we can't use sizeof because of compiler randomness.
1538*/
1539
1540#ifndef INT16SZ
1541# define INT16SZ 2
1542#endif
1543#ifndef INT32SZ
1544# define INT32SZ 4
1545#endif
d2dc4dd0 1546
3356c77c
EA
1547/*
1548** Do some required dependencies
1549*/
1550
1551#if defined(NETINET) || defined(NETISO)
e9aa7870
EA
1552# define SMTP 1 /* enable user and server SMTP */
1553# define QUEUE 1 /* enable queueing */
1554# define DAEMON 1 /* include the daemon (requires IPC & SMTP) */
3356c77c
EA
1555#endif
1556
1557
5229f34d
EA
1558/*
1559** Arrange to use either varargs or stdargs
1560*/
1561
1562# ifdef __STDC__
1563
1564# include <stdarg.h>
1565
5229f34d
EA
1566# define VA_LOCAL_DECL va_list ap;
1567# define VA_START(f) va_start(ap, f)
1568# define VA_END va_end(ap)
1569
1570# else
1571
1572# include <varargs.h>
1573
5229f34d
EA
1574# define VA_LOCAL_DECL va_list ap;
1575# define VA_START(f) va_start(ap)
1576# define VA_END va_end(ap)
1577
1578# endif
422bed79 1579
322eceee 1580#ifdef HASUNAME
422bed79
EA
1581# include <sys/utsname.h>
1582# ifdef newstr
1583# undef newstr
1584# endif
322eceee 1585#else /* ! HASUNAME */
422bed79
EA
1586# define NODE_LENGTH 32
1587struct utsname
1588{
1589 char nodename[NODE_LENGTH+1];
1590};
322eceee 1591#endif /* HASUNAME */
6e99f903 1592
4d645e29 1593#if !defined(MAXHOSTNAMELEN) && !defined(_SCO_unix_) && !defined(NonStop_UX_BXX) && !defined(ALTOS_SYS_V)
7621e399 1594# define MAXHOSTNAMELEN 256
8d3fd325 1595#endif
49c069a9
EA
1596
1597#if !defined(SIGCHLD) && defined(SIGCLD)
1598# define SIGCHLD SIGCLD
1599#endif
1600
1601#ifndef STDIN_FILENO
550fee58 1602# define STDIN_FILENO 0
49c069a9
EA
1603#endif
1604
1605#ifndef STDOUT_FILENO
550fee58 1606# define STDOUT_FILENO 1
49c069a9
EA
1607#endif
1608
1609#ifndef STDERR_FILENO
550fee58 1610# define STDERR_FILENO 2
49c069a9 1611#endif
f8a31c8e 1612
0f786d57 1613#ifndef LOCK_SH
39270cfd
EA
1614# define LOCK_SH 0x01 /* shared lock */
1615# define LOCK_EX 0x02 /* exclusive lock */
1616# define LOCK_NB 0x04 /* non-blocking lock */
1617# define LOCK_UN 0x08 /* unlock */
1618#endif
64247676 1619
550fee58
EA
1620#ifndef SEEK_SET
1621# define SEEK_SET 0
1622# define SEEK_CUR 1
1623# define SEEK_END 2
1624#endif
1625
39270cfd
EA
1626#ifndef SIG_ERR
1627# define SIG_ERR ((void (*)()) -1)
f8a31c8e 1628#endif
a3685d83 1629
0349f8cc
EA
1630#ifndef WEXITSTATUS
1631# define WEXITSTATUS(st) (((st) >> 8) & 0377)
1632#endif
1633#ifndef WIFEXITED
1634# define WIFEXITED(st) (((st) & 0377) == 0)
1635#endif
1636
53335960
EA
1637#ifndef SIGFUNC_DEFINED
1638typedef void (*sigfunc_t) __P((int));
1639#endif
1640
7cfc9c77
EA
1641/* size of syslog buffer */
1642#ifndef SYSLOG_BUFSIZE
1643# define SYSLOG_BUFSIZE 1024
1644#endif
1645
a3685d83
EA
1646/*
1647** Size of tobuf (deliver.c)
1648** Tweak this to match your syslog implementation. It will have to
1649** allow for the extra information printed.
1650*/
1651
1652#ifndef TOBUFSIZE
7cfc9c77
EA
1653# if (SYSLOG_BUFSIZE) > 512
1654# define TOBUFSIZE (SYSLOG_BUFSIZE - 256)
1655# else
1656# define TOBUFSIZE 256
1657# endif
a3685d83 1658#endif
9114f86c 1659
77779257
EA
1660/*
1661** Size of prescan buffer.
1662** Despite comments in the _sendmail_ book, this probably should
1663** not be changed; there are some hard-to-define dependencies.
1664*/
1665
1666# define PSBUFSIZE (MAXNAME + MAXATOM) /* size of prescan buffer */
9114f86c
EA
1667/* fork routine -- set above using #ifdef _osname_ or in Makefile */
1668# ifndef FORK
1669# define FORK vfork /* function to call to fork mailer */
1670# endif
5e0139e6
EA
1671
1672/*
4e93bc5c 1673** Default to using scanf in readcf.
5e0139e6
EA
1674*/
1675
4e93bc5c 1676#ifndef SCANF
5e0139e6
EA
1677# define SCANF 1
1678#endif