tag return messages with a Precedence: line for easy identification
[unix-history] / usr / src / usr.sbin / sendmail / src / conf.h
CommitLineData
5a739feb 1/*
dc45ba8c 2 * Copyright (c) 1983 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 *
810a6265 8 * @(#)conf.h 8.109 (Berkeley) %G%
bee79b64 9 */
aeb2545d
DF
10
11/*
12** CONF.H -- All user-configurable parameters for sendmail
5a739feb
EA
13*/
14
f43b04ce 15# include <sys/param.h>
82530719 16# include <sys/types.h>
46300693 17# include <sys/stat.h>
c2edb205 18# include <sys/file.h>
0349f8cc 19# include <sys/wait.h>
f8a31c8e 20# include <fcntl.h>
39270cfd 21# include <signal.h>
f43b04ce 22
ba6514e2 23/**********************************************************************
5a739feb
EA
24** Table sizes, etc....
25** There shouldn't be much need to change these....
ba6514e2 26**********************************************************************/
5a739feb 27
d36f8e5c 28# define MAXLINE 2048 /* max line length */
f0a960f1 29# define MAXNAME 256 /* max length of a name */
5a739feb 30# define MAXPV 40 /* max # of parms to mailers */
d36f8e5c 31# define MAXATOM 200 /* max atoms per address */
5a739feb 32# define MAXMAILERS 25 /* maximum mailers known to system */
8583ab39 33# define MAXRWSETS 100 /* max # of sets of rewriting rules */
5a739feb 34# define MAXPRIORITIES 25 /* max values for Precedence: field */
8583ab39 35# define MAXMXHOSTS 20 /* max # of MX records */
8657d05f 36# define SMTPLINELIM 990 /* maximum SMTP line length */
f43b04ce
EA
37# define MAXKEY 128 /* maximum size of a database key */
38# define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */
b0b636d1 39# define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */
9f7134c8 40# define MAXALIASDB 12 /* max # of alias databases */
8583ab39
EA
41
42# ifndef QUEUESIZE
43# define QUEUESIZE 1000 /* max # of jobs per queue run */
44# endif
45
ba6514e2 46/**********************************************************************
5a739feb 47** Compilation options.
9bcdff70
EA
48**
49** #define these if they are available; comment them out otherwise.
ba6514e2 50**********************************************************************/
5a739feb 51
9bcdff70 52# define LOG 1 /* enable logging */
9bcdff70 53# define UGLYUUCP 1 /* output ugly UUCP From lines */
8988dfd3 54# define NETUNIX 1 /* include unix domain support */
3356c77c 55# define NETINET 1 /* include internet support */
9bcdff70 56# define SETPROCTITLE 1 /* munge argv to display current status */
7f0fd60b 57# define MATCHGECOS 1 /* match user names from gecos field */
8e5c6745 58# define XDEBUG 1 /* enable extended debugging */
273562d8
EA
59# ifdef NEWDB
60# define USERDB 1 /* look in user database (requires NEWDB) */
5a4c03c6
EA
61# endif
62
efe7f723
EA
63/**********************************************************************
64** 0/1 Compilation options.
65** #define these to 1 if they are available;
66** #define them to 0 otherwise.
67**********************************************************************/
68
69# ifndef NAMED_BIND
70# define NAMED_BIND 1 /* use Berkeley Internet Domain Server */
71# endif
72
fce21cb9
EA
73/*
74** Most systems have symbolic links today, so default them on. You
75** can turn them off by #undef'ing this below.
76*/
77
78# define HASLSTAT 1 /* has lstat(2) call */
79
c6bd47b4
EA
80/*
81** General "standard C" defines.
82**
83** These may be undone later, to cope with systems that claim to
84** be Standard C but aren't. Gcc is the biggest offender -- it
85** doesn't realize that the library is part of the language.
86**
87** Life would be much easier if we could get rid of this sort
88** of bozo problems.
89*/
90
91#ifdef __STDC__
92# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
93#endif
94
ba6514e2 95/**********************************************************************
e6245c7e
EA
96** Operating system configuration.
97**
98** Unless you are porting to a new OS, you shouldn't have to
99** change these.
ba6514e2 100**********************************************************************/
5a4c03c6 101
fd57f063
EA
102/*
103** Per-Operating System defines
104*/
105
2b09dd75 106
ba6514e2 107/*
27a00e24 108** HP-UX -- tested for 8.07, 9.00, and 9.01.
ba6514e2
EA
109*/
110
8a47b280 111# ifdef __hpux
192b13aa
EA
112/* avoid m_flags conflict between db.h & sys/sysmacros.h on HP 300 */
113# undef m_flags
fd57f063 114# define SYSTEM5 1 /* include all the System V defines */
39270cfd
EA
115# define HASINITGROUPS 1 /* has initgroups(3) call */
116# define HASSETREUID 1 /* has setreuid(2) call */
e7261663 117# define setreuid(r, e) setresuid(r, e, -1)
33d59d37 118# define LA_TYPE LA_FLOAT
5e0e0f8f 119# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
60e52ca7 120# define GIDSET_T gid_t
33d59d37 121# define _PATH_UNIX "/hp-ux"
60e52ca7
EA
122# ifndef _PATH_SENDMAILCF
123# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
124# endif
a74fd615
EA
125# ifndef IDENTPROTO
126# define IDENTPROTO 0 /* TCP/IP implementation is broken */
127# endif
0379c130
EA
128# ifndef HASGETUSERSHELL
129# define HASGETUSERSHELL 0 /* getusershell(3) causes core dumps */
130# endif
fc658fc9 131# define syslog hard_syslog
0379c130
EA
132# ifdef __STDC__
133extern int syslog(int, char *, ...);
134# endif
273562d8
EA
135# endif
136
2b09dd75 137
ba6514e2
EA
138/*
139** IBM AIX 3.x -- actually tested for 3.2.3
140*/
141
a419d027 142# ifdef _AIX3
39270cfd 143# define HASINITGROUPS 1 /* has initgroups(3) call */
485a1ac5 144# define HASUNAME 1 /* use System V uname(2) system call */
1ee33f7d 145# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
9114f86c 146# define FORK fork /* no vfork primitive available */
3077a686 147# undef SETPROCTITLE /* setproctitle confuses AIX */
5e0e0f8f 148# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
8e5c6745
EA
149# endif
150
2b09dd75 151
ba6514e2
EA
152/*
153** Silicon Graphics IRIX
154**
0fc3fb21 155** Compiles on 4.0.1.
ba6514e2
EA
156*/
157
8e5c6745 158# ifdef IRIX
f369a70b 159# define SYSTEM5 1 /* this is a System-V derived system */
39270cfd
EA
160# define HASSETREUID 1 /* has setreuid(2) call */
161# define HASINITGROUPS 1 /* has initgroups(3) call */
1ee33f7d 162# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
8e5c6745 163# define FORK fork /* no vfork primitive available */
1c8c1ad2 164# define WAITUNION 1 /* use "union wait" as wait argument type */
0d2faefc 165# define setpgid BSDsetpgrp
e6cb9fc4 166# define GIDSET_T gid_t
5e0e0f8f 167# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
f369a70b 168# define LA_TYPE LA_INT
9114f86c
EA
169# endif
170
ba6514e2
EA
171
172/*
8988dfd3
EA
173** SunOS and Solaris
174**
175** Tested on SunOS 4.1.x (a.k.a. Solaris 1.1.x) and
176** Solaris 2.2 (a.k.a. SunOS 5.2).
ba6514e2
EA
177*/
178
45f49b73 179#if defined(sun) && !defined(BSD)
fd57f063 180
39270cfd 181# define HASINITGROUPS 1 /* has initgroups(3) call */
8988dfd3 182# define HASUNAME 1 /* use System V uname(2) system call */
1ee33f7d 183# define HASGETUSERSHELL 1 /* DOES have getusershell(3) call in libc */
5e0e0f8f 184# define LA_TYPE LA_INT
45f49b73 185
d4125001
EA
186# ifdef SOLARIS_2_3
187# define SOLARIS
188# endif
189
7b3820ed 190# ifdef SOLARIS
ba6514e2 191 /* Solaris 2.x (a.k.a. SunOS 5.x) */
0554a095
EA
192# ifndef __svr4__
193# define __svr4__ /* use all System V Releae 4 defines below */
194# endif
fd57f063 195# include <sys/time.h>
6f884c69
EA
196# define gethostbyname solaris_gethostbyname /* get working version */
197# define gethostbyaddr solaris_gethostbyaddr /* get working version */
d7a2e485 198# define GIDSET_T gid_t
f361504a 199# ifndef _PATH_UNIX
1960c7b8 200# define _PATH_UNIX "/dev/ksyms"
f361504a 201# endif
33d59d37
EA
202# ifndef _PATH_SENDMAILCF
203# define _PATH_SENDMAILCF "/etc/mail/sendmail.cf"
0f786d57 204# endif
0f786d57 205# ifndef _PATH_SENDMAILPID
33d59d37
EA
206# define _PATH_SENDMAILPID "/etc/mail/sendmail.pid"
207# endif
71aecf7c
EA
208# ifndef SYSLOG_BUFSIZE
209# define SYSLOG_BUFSIZE 1024 /* allow full size syslog buffer */
210# endif
fd57f063 211
7b3820ed 212# else
e9abaf1a 213 /* SunOS 4.0.3 or 4.1.x */
f361504a 214# define HASSETREUID 1 /* has setreuid(2) call */
72af7ebb
EA
215# ifndef HASFLOCK
216# define HASFLOCK 1 /* has flock(2) call */
217# endif
5e0e0f8f 218# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
45f49b73 219# include <vfork.h>
45f49b73 220
e9abaf1a
EA
221# ifdef SUNOS403
222 /* special tweaking for SunOS 4.0.3 */
223# include <malloc.h>
224# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
225# define WAITUNION 1 /* use "union wait" as wait argument type */
226# undef WIFEXITED
227# undef WEXITSTATUS
228# undef HASUNAME
229# define setpgid setpgrp
230typedef int pid_t;
231extern char *getenv();
232
d0812b5a
EA
233# else
234 /* 4.1.x specifics */
235# define HASSETSID 1 /* has Posix setsid(2) call */
236# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
237
e9abaf1a 238# endif
fd57f063 239# endif
45f49b73
EA
240#endif
241
fe3849ea 242/*
8988dfd3
EA
243** DG/UX
244**
810a6265
EA
245** Tested on 5.4.2 and 5.4.3. Use DGUX_5_4_2 to get the
246** older support.
247** 5.4.3 changes from Mark T. Robinson <mtr@ornl.gov>.
fe3849ea
EA
248*/
249
810a6265
EA
250#ifdef DGUX_5_4_2
251# define DGUX 1
252#endif
253
fe3849ea
EA
254#ifdef DGUX
255# define SYSTEM5 1
256# define LA_TYPE LA_SUBR
fe3849ea
EA
257# define HASSETREUID 1 /* has setreuid(2) call */
258# define HASUNAME 1 /* use System V uname(2) system call */
259# define HASSETSID 1 /* has Posix setsid(2) call */
260# define HASINITGROUPS 1 /* has initgroups(3) call */
e1ab99fe 261# define HASGETUSERSHELL 0 /* does not have getusershell(3) */
a74fd615
EA
262# ifndef IDENTPROTO
263# define IDENTPROTO 0 /* TCP/IP implementation is broken */
264# endif
fe3849ea 265# undef SETPROCTITLE
5e0e0f8f 266# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
8988dfd3
EA
267
268/* these include files must be included early on DG/UX */
269# include <netinet/in.h>
270# include <arpa/inet.h>
271
810a6265
EA
272# ifdef DGUX_5_4_2
273# define inet_addr dgux_inet_addr
fe3849ea 274extern long dgux_inet_addr();
810a6265 275# endif
fe3849ea
EA
276#endif
277
2b09dd75 278
ba6514e2
EA
279/*
280** Digital Ultrix 4.2A or 4.3
9cea9407
EA
281**
282** Apparently, fcntl locking is broken on 4.2A, in that locks are
283** not dropped when the process exits. This causes major problems,
284** so flock is the only alternative.
ba6514e2
EA
285*/
286
45f49b73 287#ifdef ultrix
39270cfd 288# define HASSETREUID 1 /* has setreuid(2) call */
33d59d37 289# define HASUNSETENV 1 /* has unsetenv(3) call */
39270cfd 290# define HASINITGROUPS 1 /* has initgroups(3) call */
b1839a64 291# define HASUNAME 1 /* use System V uname(2) system call */
72af7ebb
EA
292# ifndef HASFLOCK
293# define HASFLOCK 1 /* has flock(2) call */
294# endif
1ee33f7d 295# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
a3815d39 296# define BROKEN_RES_SEARCH 1 /* res_search(unknown) returns h_errno=0 */
0dbb4629
EA
297# ifdef vax
298# define LA_TYPE LA_FLOAT
299# else
300# define LA_TYPE LA_INT
301# define LA_AVENRUN "avenrun"
302# endif
5e0e0f8f 303# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
a74fd615
EA
304# ifndef IDENTPROTO
305# define IDENTPROTO 0 /* TCP/IP implementation is broken */
306# endif
e6245c7e
EA
307#endif
308
2b09dd75 309
ba6514e2
EA
310/*
311** OSF/1 (tested on Alpha)
312*/
313
fd57f063 314#ifdef __osf__
33d59d37 315# define HASUNSETENV 1 /* has unsetenv(3) call */
39270cfd
EA
316# define HASSETREUID 1 /* has setreuid(2) call */
317# define HASINITGROUPS 1 /* has initgroups(3) call */
534256ae 318# ifndef HASFLOCK
72af7ebb
EA
319# define HASFLOCK 1 /* has flock(2) call */
320# endif
33d59d37 321# define LA_TYPE LA_INT
5e0e0f8f 322# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
8988dfd3 323# ifndef _PATH_SENDMAILPID
fc658fc9 324# define _PATH_SENDMAILPID "/var/run/sendmail.pid"
8988dfd3 325# endif
6070681d
EA
326#endif
327
2b09dd75 328
ba6514e2
EA
329/*
330** NeXTstep
331*/
332
fbfeb92c 333#ifdef NeXT
39270cfd 334# define HASINITGROUPS 1 /* has initgroups(3) call */
72af7ebb
EA
335# ifndef HASFLOCK
336# define HASFLOCK 1 /* has flock(2) call */
337# endif
9cb009c2 338# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
693a756a 339# define WAITUNION 1 /* use "union wait" as wait argument type */
8e5c6745 340# define sleep sleepX
0d2faefc 341# define setpgid setpgrp
e60b62fd
EA
342# ifndef LA_TYPE
343# define LA_TYPE LA_MACH
344# endif
5e0e0f8f 345# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
0349f8cc 346# ifndef _POSIX_SOURCE
39270cfd 347typedef int pid_t;
0349f8cc
EA
348# undef WEXITSTATUS
349# undef WIFEXITED
350# endif
0f786d57
EA
351# ifndef _PATH_SENDMAILCF
352# define _PATH_SENDMAILCF "/etc/sendmail/sendmail.cf"
353# endif
0f786d57
EA
354# ifndef _PATH_SENDMAILPID
355# define _PATH_SENDMAILPID "/etc/sendmail/sendmail.pid"
356# endif
8c5949d2
EA
357#endif
358
2b09dd75 359
ba6514e2 360/*
33d59d37 361** 4.4 BSD
9c08c09b
EA
362**
363** See also BSD defines.
ba6514e2
EA
364*/
365
ed0b2c1b 366#ifdef BSD4_4
0f786d57 367# define HASUNSETENV 1 /* has unsetenv(3) call */
ed0b2c1b 368# include <sys/cdefs.h>
7621e399 369# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
0f786d57
EA
370# ifndef LA_TYPE
371# define LA_TYPE LA_SUBR
372# endif
5e0e0f8f 373# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
7621e399
EA
374#endif
375
2b09dd75 376
e7261663
EA
377/*
378** BSD/386 (all versions)
379** From Tony Sanders, BSDI
380*/
381
382#ifdef __bsdi__
383# define HASUNSETENV 1 /* has the unsetenv(3) call */
384# define HASSETSID 1 /* has the setsid(2) POSIX syscall */
e7261663
EA
385# include <sys/cdefs.h>
386# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
11c14c72 387# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
e7261663
EA
388# ifndef LA_TYPE
389# define LA_TYPE LA_SUBR
390# endif
11c14c72
EA
391# if defined(_BSDI_VERSION) && _BSDI_VERSION >= 199312
392 /* version 1.1 or later */
393# define HASSETPROCTITLE 1 /* setproctitle is in libc */
394# undef SETPROCTITLE /* so don't redefine it in conf.c */
395# else
396 /* version 1.0 or earlier */
397# ifndef OLD_NEWDB
398# define OLD_NEWDB 1 /* old version of newdb library */
399# endif
400# endif
e7261663
EA
401#endif
402
403
404
db82ecce 405/*
766f059d 406** 386BSD / FreeBSD 1.0E / NetBSD (all architectures, all versions)
db82ecce
EA
407**
408** 4.3BSD clone, closer to 4.4BSD
9c08c09b
EA
409**
410** See also BSD defines.
db82ecce
EA
411*/
412
766f059d 413#if defined(__386BSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
db82ecce
EA
414# define HASUNSETENV 1 /* has unsetenv(3) call */
415# define HASSETSID 1 /* has the setsid(2) POSIX syscall */
1411dc64
EA
416# ifdef __NetBSD__
417# define HASUNAME 1 /* has uname(2) syscall */
418# endif
db82ecce
EA
419# include <sys/cdefs.h>
420# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
421# ifndef LA_TYPE
422# define LA_TYPE LA_SUBR
423# endif
5e0e0f8f 424# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
db82ecce
EA
425#endif
426
427
8988dfd3
EA
428/*
429** Mach386
430**
431** For mt Xinu's Mach386 system.
432*/
433
434#if defined(MACH) && defined(i386)
435# define MACH386 1
436# define HASUNSETENV 1 /* has unsetenv(3) call */
437# define HASINITGROUPS 1 /* has initgroups(3) call */
534256ae 438# ifndef HASFLOCK
72af7ebb
EA
439# define HASFLOCK 1 /* has flock(2) call */
440# endif
8988dfd3
EA
441# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
442# define NEEDSTRTOL 1 /* need the strtol() function */
443# define setpgid setpgrp
444# ifndef LA_TYPE
445# define LA_TYPE LA_FLOAT
446# endif
5e0e0f8f 447# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
c6bd47b4 448# undef HASSETVBUF /* don't actually have setvbuf(3) */
8988dfd3
EA
449# undef WEXITSTATUS
450# undef WIFEXITED
451# ifndef _PATH_SENDMAILCF
452# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
453# endif
454# ifndef _PATH_SENDMAILPID
455# define _PATH_SENDMAILPID "/etc/sendmail.pid"
456# endif
457#endif
458
459
35f1f39e
EA
460/*
461** 4.3 BSD -- this is for very old systems
462**
f0bb212b
EA
463** Should work for mt Xinu MORE/BSD and Mips UMIPS-BSD 2.1.
464**
35f1f39e
EA
465** You'll also have to install a new resolver library.
466** I don't guarantee that support for this environment is complete.
467*/
468
f0bb212b 469#if defined(oldBSD43) || defined(MORE_BSD) || defined(umipsbsd)
35f1f39e
EA
470# define NEEDVPRINTF 1 /* need a replacement for vprintf(3) */
471# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
0639fd0c 472# define ARBPTR_T char *
0d2faefc 473# define setpgid setpgrp
35f1f39e
EA
474# ifndef LA_TYPE
475# define LA_TYPE LA_FLOAT
476# endif
477# ifndef _PATH_SENDMAILCF
478# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
479# endif
a74fd615
EA
480# ifndef IDENTPROTO
481# define IDENTPROTO 0 /* TCP/IP implementation is broken */
482# endif
ac3f694f
EA
483# undef WEXITSTATUS
484# undef WIFEXITED
485typedef short pid_t;
486extern int errno;
35f1f39e
EA
487#endif
488
2b09dd75 489
ba6514e2
EA
490/*
491** SCO Unix
8e01bd08
EA
492**
493** This includes two parts -- the first is for SCO Open Server 3.2v4
494** (contributed by Philippe Brand <phb@colombo.telesys-innov.fr>).
495** The second is, I believe, for an older version.
ba6514e2
EA
496*/
497
8e01bd08
EA
498#ifdef _SCO_unix_4_2
499# define _SCO_unix_
500# define HASSETREUID 1 /* has setreuid(2) call */
3f23b98b 501# define NEEDFSYNC 1 /* needs the fsync(2) call stub */
8e01bd08
EA
502# define _PATH_UNIX "/unix"
503# ifndef _PATH_SENDMAILCF
504# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
505# endif
506# ifndef _PATH_SENDMAILPID
507# define _PATH_SENDMAILPID "/etc/sendmail.pid"
508# endif
509#endif
510
7621e399
EA
511#ifdef _SCO_unix_
512# define SYSTEM5 1 /* include all the System V defines */
39270cfd 513# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
175dac04 514# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
7621e399
EA
515# define FORK fork
516# define MAXPATHLEN PATHSIZE
fe3849ea 517# define LA_TYPE LA_SHORT
5e0e0f8f 518# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
8988dfd3 519# undef NETUNIX /* no unix domain socket support */
33d59d37
EA
520#endif
521
2b09dd75 522
33d59d37
EA
523/*
524** ConvexOS 11.0 and later
f0bb212b
EA
525**
526** "Todd C. Miller" <millert@mroe.cs.colorado.edu> claims this
527** works on 9.1 as well.
33d59d37
EA
528*/
529
530#ifdef _CONVEX_SOURCE
0c31d7be
EA
531# define BSD 1 /* include all the BSD defines */
532# define HASUNAME 1 /* use System V uname(2) system call */
33d59d37 533# define HASSETSID 1 /* has POSIX setsid(2) call */
0c31d7be 534# define NEEDGETOPT 1 /* need replacement for getopt(3) */
33d59d37 535# define LA_TYPE LA_FLOAT
5e0e0f8f 536# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
f0bb212b
EA
537# ifndef _PATH_SENDMAILCF
538# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
539# endif
540# ifndef S_IREAD
541# define S_IREAD _S_IREAD
542# define S_IWRITE _S_IWRITE
543# define S_IEXEC _S_IEXEC
544# define S_IFMT _S_IFMT
545# define S_IFCHR _S_IFCHR
546# define S_IFBLK _S_IFBLK
547# endif
a74fd615
EA
548# ifndef IDENTPROTO
549# define IDENTPROTO 0 /* TCP/IP implementation is broken */
550# endif
33d59d37
EA
551#endif
552
2b09dd75 553
33d59d37 554/*
fa323968 555** RISC/os 4.52
33d59d37 556**
fa323968 557** Gives a ton of warning messages, but otherwise compiles.
33d59d37
EA
558*/
559
0fc3fb21 560#ifdef RISCOS
fa323968 561
33d59d37 562# define HASUNSETENV 1 /* has unsetenv(3) call */
534256ae 563# ifndef HASFLOCK
72af7ebb
EA
564# define HASFLOCK 1 /* has flock(2) call */
565# endif
fa323968
EA
566# define WAITUNION 1 /* use "union wait" as wait argument type */
567# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
33d59d37
EA
568# define LA_TYPE LA_INT
569# define LA_AVENRUN "avenrun"
570# define _PATH_UNIX "/unix"
fa323968
EA
571# undef WIFEXITED
572
573# define setpgid setpgrp
574
575extern int errno;
576typedef int pid_t;
577#define SIGFUNC_DEFINED
578typedef int (*sigfunc_t)();
579extern char *getenv();
580extern void *malloc();
581
ed0b2c1b
EA
582#endif
583
2b09dd75 584
0d2faefc
EA
585/*
586** Linux 0.99pl10 and above...
a1a01683
EA
587**
588** Thanks to, in reverse order of contact:
589**
590** John Kennedy <warlock@csuchico.edu>
591** Florian La Roche <rzsfl@rz.uni-sb.de>
592** Karl London <karl@borg.demon.co.uk>
593**
594** Last compiled against: [03/02/94 @ 05:34 PM (Wednesday)]
595** sendmail 8.6.6.b9 named 4.9.2-931205-p1 db-1.73
596** gcc 2.5.8 libc.so.4.5.19
597** slackware 1.1.2 linux 0.99.15
0d2faefc
EA
598*/
599
404f4d13 600#ifdef __linux__
402003b1 601# define BSD 1 /* include BSD defines */
0d2faefc 602# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
402003b1 603# define HASUNAME 1 /* use System V uname(2) system call */
c2edb205 604# define HASUNSETENV 1 /* has unsetenv(3) call */
402003b1 605# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
a1a01683 606# define GIDSET_T gid_t /* from <linux/types.h> */
0d2faefc 607# ifndef LA_TYPE
ff065a83 608# define LA_TYPE LA_PROCSTR
0d2faefc 609# endif
a1a01683 610# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() impl */
72ef208d 611# include <sys/sysmacros.h>
a1a01683 612# undef atol /* wounded in <stdlib.h> */
0d2faefc
EA
613#endif
614
615
178464cb
EA
616/*
617** DELL SVR4 Issue 2.2, and others
618** From Kimmo Suominen <kim@grendel.lut.fi>
619**
620** It's on #ifdef DELL_SVR4 because Solaris also gets __svr4__
621** defined, and the definitions conflict.
69bed929
EA
622**
623** Peter Wemm <peter@perth.DIALix.oz.au> claims that the setreuid
624** trick works on DELL 2.2 (SVR4.0/386 version 4.0) and ESIX 4.0.3A
625** (SVR4.0/386 version 3.0).
178464cb
EA
626*/
627
628#ifdef DELL_SVR4
f361504a
EA
629 /* no changes necessary */
630 /* see general __svr4__ defines below */
178464cb
EA
631#endif
632
633
c2edb205
EA
634/*
635** Apple A/UX 3.0
636*/
637
638#ifdef _AUX_SOURCE
25a722b1 639# include <sys/sysmacros.h>
c2edb205 640# define BSD /* has BSD routines */
c2edb205 641# define HASUNAME 1 /* use System V uname(2) system call */
c2edb205 642# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
53335960 643# define SIGFUNC_DEFINED /* sigfunc_t already defined */
a74fd615
EA
644# ifndef IDENTPROTO
645# define IDENTPROTO 0 /* TCP/IP implementation is broken */
646# endif
c2edb205
EA
647# define FORK fork
648# ifndef _PATH_SENDMAILCF
649# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
650# endif
651# ifndef LA_TYPE
652# define LA_TYPE LA_ZERO
653# endif
5e0e0f8f 654# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
96e003d2
EA
655# undef WIFEXITED
656# undef WEXITSTATUS
c2edb205
EA
657#endif
658
659
82530719
EA
660/*
661** Encore UMAX V
662**
663** Not extensively tested.
664*/
665
666#ifdef UMAXV
667# include <limits.h>
668# define HASUNAME 1 /* use System V uname(2) system call */
82530719
EA
669# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
670# define HASINITGROUPS 1 /* has initgroups(3) call */
1ee33f7d 671# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
82530719
EA
672# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
673# define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */
674# define FORK fork /* no vfork(2) primitive available */
5e0e0f8f 675# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
82530719
EA
676# define MAXPATHLEN PATH_MAX
677extern struct passwd *getpwent(), *getpwnam(), *getpwuid();
678extern struct group *getgrent(), *getgrnam(), *getgrgid();
679# undef WIFEXITED
680# undef WEXITSTATUS
681#endif
682
683
31c3ae15
EA
684/*
685** Stardent Titan 3000 running TitanOS 4.2.
686**
687** Must be compiled in "cc -43" mode.
688**
fce21cb9 689** From Kate Hedstrom <kate@ahab.rutgers.edu>.
31c3ae15
EA
690**
691** Note the tweaking below after the BSD defines are set.
692*/
693
694#ifdef titan
695# define setpgid setpgrp
696typedef int pid_t;
697# undef WIFEXITED
698# undef WEXITSTATUS
699#endif
700
701
c6bd47b4
EA
702/*
703** Sequent DYNIX 3.2.0
704**
705** From Jim Davis <jdavis@cs.arizona.edu>.
706*/
707
708#ifdef sequent
efadb8ee 709
c6bd47b4
EA
710# define BSD 1
711# define HASUNSETENV 1
712# define BSD4_3 1 /* to get signal() in conf.c */
713# define WAITUNION 1
714# define LA_TYPE LA_FLOAT
715# ifdef _POSIX_VERSION
716# undef _POSIX_VERSION /* set in <unistd.h> */
717# endif
718# undef HASSETVBUF /* don't actually have setvbuf(3) */
719# define setpgid setpgrp
720
721/* Have to redefine WIFEXITED to take an int, to work with waitfor() */
722# undef WIFEXITED
723# define WIFEXITED(s) (((union wait*)&(s))->w_stopval != WSTOPPED && \
724 ((union wait*)&(s))->w_termsig == 0)
725# define WEXITSTATUS(s) (((union wait*)&(s))->w_retcode)
726typedef int pid_t;
727# define isgraph(c) (isprint(c) && (c != ' '))
728
28462cf3
EA
729# ifndef IDENTPROTO
730# define IDENTPROTO 0 /* TCP/IP implementation is broken */
731# endif
732
c6bd47b4
EA
733# ifndef _PATH_UNIX
734# define _PATH_UNIX "/dynix"
735# endif
736# ifndef _PATH_SENDMAILCF
737# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
738# endif
739
740#endif
741
742
efadb8ee
EA
743/*
744** Sequent DYNIX/ptx v2.0 (and higher)
745**
746** For DYNIX/ptx v1.x, undefine HASSETREUID.
747**
748** From Tim Wright <timw@sequent.com>.
749*/
750
751#ifdef _SEQUENT_
752# define SYSTEM5 1 /* include all the System V defines */
753# define HASSETSID 1 /* has POSIX setsid(2) call */
754# define HASINITGROUPS 1 /* has initgroups(3) call */
755# define HASSETREUID 1 /* has setreuid(2) call */
756# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
757# define GIDSET_T gid_t
758# define LA_TYPE LA_INT
759# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
760# undef SETPROCTITLE
28462cf3
EA
761# ifndef IDENTPROTO
762# define IDENTPROTO 0 /* TCP/IP implementation is broken */
763# endif
efadb8ee
EA
764# ifndef _PATH_SENDMAILCF
765# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
766# endif
767# ifndef _PATH_SENDMAILPID
768# define _PATH_SENDMAILPID "/etc/sendmail.pid"
769# endif
770#endif
771
772
250441f6
EA
773/*
774** Cray Unicos
775**
776** Ported by David L. Kensiski, Sterling Sofware <kensiski@nas.nasa.gov>
777*/
778
779#ifdef UNICOS
780# define SYSTEM5 1 /* include all the System V defines */
781# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
250441f6
EA
782# define MAXPATHLEN PATHSIZE
783# define LA_TYPE LA_ZERO
5e0e0f8f 784# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
250441f6
EA
785#endif
786
c6bd47b4 787
548197f7
EA
788/*
789** Apollo DomainOS
790**
791** From Todd Martin <tmartint@tus.ssi1.com> & Don Lewis <gdonl@gv.ssi1.com>
e7261663 792**
548197f7
EA
793** 15 Jan 1994
794**
795*/
796
797#ifdef apollo
548197f7
EA
798# define HASSETREUID 1 /* has setreuid(2) call */
799# define HASINITGROUPS 1 /* has initgroups(2) call */
800# undef SETPROCTITLE
801# define LA_TYPE LA_SUBR /* use getloadavg.c */
f243158a 802# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
548197f7
EA
803# ifndef _PATH_SENDMAILCF
804# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf"
805# endif
806# ifndef _PATH_SENDMAILPID
807# define _PATH_SENDMAILPID "/etc/sendmail.pid"
808# endif
809# undef S_IFSOCK /* S_IFSOCK and S_IFIFO are the same */
810# undef S_IFIFO
811# define S_IFIFO 0010000
812# ifndef IDENTPROTO
813# define IDENTPROTO 0 /* TCP/IP implementation is broken */
814# endif
e7261663 815#endif
548197f7
EA
816
817
41915d28
EA
818/*
819** UnixWare
820**
821** From Evan Champion <evanc@spatial.synapse.org>.
822*/
823
824#ifdef UNIXWARE
825# define SYSTEM5 1
826# ifndef HASGETUSERSHELL
827# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
828# endif
829# define GIDSET_T int
830# define SLEEP_T int
831# define SFS_TYPE SFS_STATVFS
832# define LA_TYPE LA_ZERO
833# undef WIFEXITED
834# undef WEXITSTATUS
835# define _PATH_UNIX "/unix"
836# ifndef _PATH_SENDMAILCF
837# define _PATH_SENDMAILCF "/usr/ucblib/sendmail.cf"
838# endif
839# ifndef _PATH_SENDMAILPID
840# define _PATH_SENDMAILPID "/usr/ucblib/sendmail.pid"
841# endif
842# define SYSLOG_BUFSIZE 128
843#endif
844
845
8b223875
EA
846/*
847** Intergraph CLIX 3.1
848**
849** From Paul Southworth <pauls@locust.cic.net>
850*/
851
852#ifdef CLIX
853# define SYSTEM5 1 /* looks like System V */
41915d28
EA
854# ifndef HASGETUSERSHELL
855# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
856# endif
8b223875
EA
857# define DEV_BSIZE 512 /* device block size not defined */
858# define GIDSET_T gid_t
859# undef LOG /* syslog not available */
860# define NEEDFSYNC 1 /* no fsync in system library */
861# define GETSHORT _getshort
862#endif
863
864
01e1d6e5
EA
865/*
866** NCR 3000 Series (SysVr4)
867**
868** From From: Kevin Darcy <kevin@tech.mis.cfc.com>.
869*/
870
871#ifdef NCR3000
872# define __svr4__
873# undef BSD
874# define LA_AVENRUN "avenrun"
875#endif
876
877
878
548197f7 879
178464cb 880
ba6514e2 881/**********************************************************************
fd57f063 882** End of Per-Operating System defines
ba6514e2 883**********************************************************************/
fd57f063 884
b4cd00ff
EA
885/**********************************************************************
886** More general defines
887**********************************************************************/
888
33d59d37
EA
889/* general BSD defines */
890#ifdef BSD
39270cfd
EA
891# define HASGETDTABLESIZE 1 /* has getdtablesize(2) call */
892# define HASSETREUID 1 /* has setreuid(2) call */
893# define HASINITGROUPS 1 /* has initgroups(2) call */
72af7ebb
EA
894# ifndef HASFLOCK
895# define HASFLOCK 1 /* has flock(2) call */
896# endif
33d59d37
EA
897#endif
898
f361504a
EA
899/* general System V Release 4 defines */
900#ifdef __svr4__
901# define SYSTEM5 1
902# define HASSETREUID 1 /* has seteuid(2) call & working saved uids */
1ee33f7d
EA
903# ifndef HASGETUSERSHELL
904# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
9ceb18fe 905# endif
f361504a
EA
906# define setreuid(r, e) seteuid(e)
907
908# ifndef _PATH_UNIX
909# define _PATH_UNIX "/unix"
910# endif
911# ifndef _PATH_SENDMAILCF
912# define _PATH_SENDMAILCF "/usr/ucblib/sendmail.cf"
913# endif
914# ifndef _PATH_SENDMAILPID
915# define _PATH_SENDMAILPID "/usr/ucblib/sendmail.pid"
916# endif
917# ifndef SYSLOG_BUFSIZE
918# define SYSLOG_BUFSIZE 128
919# endif
25e2468c
EA
920# ifndef SFS_TYPE
921# define SFS_TYPE SFS_STATVFS
922# endif
f361504a
EA
923#endif
924
fd57f063 925/* general System V defines */
402003b1 926#ifdef SYSTEM5
8988dfd3 927# include <sys/sysmacros.h>
b4cd00ff 928# define HASUNAME 1 /* use System V uname(2) system call */
82530719 929# define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */
c6bd47b4 930# define HASSETVBUF 1 /* we have setvbuf(3) in libc */
33d59d37 931# ifndef LA_TYPE
5e0e0f8f
EA
932# define LA_TYPE LA_INT /* assume integer load average */
933# endif
934# ifndef SFS_TYPE
935# define SFS_TYPE SFS_USTAT /* use System V ustat(2) syscall */
33d59d37 936# endif
b4cd00ff
EA
937# define bcopy(s, d, l) (memmove((d), (s), (l)))
938# define bzero(d, l) (memset((d), '\0', (l)))
939# define bcmp(s, d, l) (memcmp((s), (d), (l)))
402003b1 940#endif
fd57f063 941
b4cd00ff
EA
942/* general POSIX defines */
943#ifdef _POSIX_VERSION
fe3849ea
EA
944# define HASSETSID 1 /* has Posix setsid(2) call */
945# define HASWAITPID 1 /* has Posix waitpid(2) call */
b4cd00ff
EA
946#endif
947
e6cb9fc4
EA
948/*
949** If no type for argument two of getgroups call is defined, assume
950** it's an integer -- unfortunately, there seem to be several choices
951** here.
952*/
953
954#ifndef GIDSET_T
955# define GIDSET_T int
956#endif
957
31c3ae15
EA
958/*
959** Tweaking for systems that (for example) claim to be BSD but
960** don't have all the standard BSD routines (boo hiss).
961*/
962
963#ifdef titan
964# undef HASINITGROUPS /* doesn't have initgroups(3) call */
965#endif
966
72af7ebb 967
a74fd615
EA
968/*
969** Due to a "feature" in some operating systems such as Ultrix 4.3 and
970** HPUX 8.0, if you receive a "No route to host" message (ICMP message
971** ICMP_UNREACH_HOST) on _any_ connection, all connections to that host
972** are closed. Some firewalls return this error if you try to connect
973** to the IDENT port (113), so you can't receive email from these hosts
974** on these systems. The firewall really should use a more specific
975** message such as ICMP_UNREACH_PROTOCOL or _PORT or _NET_PROHIB. If
976** not explicitly set to zero above, default it on.
977*/
978
979#ifndef IDENTPROTO
980# define IDENTPROTO 1 /* use IDENT proto (RFC 1413) */
981#endif
982
1ee33f7d
EA
983#ifndef HASGETUSERSHELL
984# define HASGETUSERSHELL 1 /* libc has getusershell(3) call */
9ceb18fe
EA
985#endif
986
72af7ebb
EA
987#ifndef HASFLOCK
988# define HASFLOCK 0 /* assume no flock(2) support */
989#endif
990
11c14c72
EA
991#ifndef OLD_NEWDB
992# define OLD_NEWDB 0 /* assume newer version of newdb */
993#endif
994
2295903c
EA
995
996/**********************************************************************
e6245c7e
EA
997** Remaining definitions should never have to be changed. They are
998** primarily to provide back compatibility for older systems -- for
6070681d 999** example, it includes some POSIX compatibility definitions
2295903c 1000**********************************************************************/
e6245c7e 1001
bd3dddbf
EA
1002/* System 5 compatibility */
1003#ifndef S_ISREG
fce21cb9
EA
1004# define S_ISREG(foo) ((foo & S_IFMT) == S_IFREG)
1005#endif
1006#if !defined(S_ISLNK) && defined(S_IFLNK)
1007# define S_ISLNK(foo) ((foo & S_IFMT) == S_IFLNK)
bd3dddbf
EA
1008#endif
1009#ifndef S_IWGRP
1010#define S_IWGRP 020
1011#endif
1012#ifndef S_IWOTH
1013#define S_IWOTH 002
1014#endif
1015
030ae776
EA
1016/*
1017** Older systems don't have this error code -- it should be in
1018** /usr/include/sysexits.h.
1019*/
1020
1021# ifndef EX_CONFIG
1022# define EX_CONFIG 78 /* configuration error */
1023# endif
5229f34d 1024
fe3849ea
EA
1025/* pseudo-code used in server SMTP */
1026# define EX_QUIT 22 /* drop out of server immediately */
1027
1028
92f2b65e
EA
1029/*
1030** These are used in a few cases where we need some special
1031** error codes, but where the system doesn't provide something
1032** reasonable. They are printed in errstring.
1033*/
1034
1035#ifndef E_PSEUDOBASE
1036# define E_PSEUDOBASE 256
1037#endif
1038
1039#define EOPENTIMEOUT (E_PSEUDOBASE + 0) /* timeout on open */
1040#define E_DNSBASE (E_PSEUDOBASE + 20) /* base for DNS h_errno */
1041
0639fd0c
EA
1042/* type of arbitrary pointer */
1043#ifndef ARBPTR_T
1044# define ARBPTR_T void *
1045#endif
1046
ed0b2c1b
EA
1047#ifndef __P
1048# include "cdefs.h"
1049#endif
1050
648eb46e
EA
1051#if NAMED_BIND
1052# include <arpa/nameser.h>
1053#endif
1054
d2dc4dd0
EA
1055/*
1056** The size of an IP address -- can't use sizeof because of problems
1057** on Crays, where everything is 64 bits. This will break if/when
1058** IP addresses are expanded to eight bytes.
1059*/
1060
648eb46e
EA
1061#ifndef INADDRSZ
1062# define INADDRSZ 4
1063#endif
1064
1065/*
1066** The size of various known types -- for reading network protocols.
1067** Again, we can't use sizeof because of compiler randomness.
1068*/
1069
1070#ifndef INT16SZ
1071# define INT16SZ 2
1072#endif
1073#ifndef INT32SZ
1074# define INT32SZ 4
1075#endif
d2dc4dd0 1076
3356c77c
EA
1077/*
1078** Do some required dependencies
1079*/
1080
1081#if defined(NETINET) || defined(NETISO)
e9aa7870
EA
1082# define SMTP 1 /* enable user and server SMTP */
1083# define QUEUE 1 /* enable queueing */
1084# define DAEMON 1 /* include the daemon (requires IPC & SMTP) */
3356c77c
EA
1085#endif
1086
1087
5229f34d
EA
1088/*
1089** Arrange to use either varargs or stdargs
1090*/
1091
1092# ifdef __STDC__
1093
1094# include <stdarg.h>
1095
5229f34d
EA
1096# define VA_LOCAL_DECL va_list ap;
1097# define VA_START(f) va_start(ap, f)
1098# define VA_END va_end(ap)
1099
1100# else
1101
1102# include <varargs.h>
1103
5229f34d
EA
1104# define VA_LOCAL_DECL va_list ap;
1105# define VA_START(f) va_start(ap)
1106# define VA_END va_end(ap)
1107
1108# endif
422bed79 1109
322eceee 1110#ifdef HASUNAME
422bed79
EA
1111# include <sys/utsname.h>
1112# ifdef newstr
1113# undef newstr
1114# endif
322eceee 1115#else /* ! HASUNAME */
422bed79
EA
1116# define NODE_LENGTH 32
1117struct utsname
1118{
1119 char nodename[NODE_LENGTH+1];
1120};
322eceee 1121#endif /* HASUNAME */
6e99f903 1122
7621e399
EA
1123#if !defined(MAXHOSTNAMELEN) && !defined(_SCO_unix_)
1124# define MAXHOSTNAMELEN 256
8d3fd325 1125#endif
49c069a9
EA
1126
1127#if !defined(SIGCHLD) && defined(SIGCLD)
1128# define SIGCHLD SIGCLD
1129#endif
1130
1131#ifndef STDIN_FILENO
1132#define STDIN_FILENO 0
1133#endif
1134
1135#ifndef STDOUT_FILENO
1136#define STDOUT_FILENO 1
1137#endif
1138
1139#ifndef STDERR_FILENO
1140#define STDERR_FILENO 2
1141#endif
f8a31c8e 1142
0f786d57 1143#ifndef LOCK_SH
39270cfd
EA
1144# define LOCK_SH 0x01 /* shared lock */
1145# define LOCK_EX 0x02 /* exclusive lock */
1146# define LOCK_NB 0x04 /* non-blocking lock */
1147# define LOCK_UN 0x08 /* unlock */
1148#endif
64247676 1149
39270cfd
EA
1150#ifndef SIG_ERR
1151# define SIG_ERR ((void (*)()) -1)
f8a31c8e 1152#endif
a3685d83 1153
0349f8cc
EA
1154#ifndef WEXITSTATUS
1155# define WEXITSTATUS(st) (((st) >> 8) & 0377)
1156#endif
1157#ifndef WIFEXITED
1158# define WIFEXITED(st) (((st) & 0377) == 0)
1159#endif
1160
53335960
EA
1161#ifndef SIGFUNC_DEFINED
1162typedef void (*sigfunc_t) __P((int));
1163#endif
1164
7cfc9c77
EA
1165/* size of syslog buffer */
1166#ifndef SYSLOG_BUFSIZE
1167# define SYSLOG_BUFSIZE 1024
1168#endif
1169
a3685d83
EA
1170/*
1171** Size of tobuf (deliver.c)
1172** Tweak this to match your syslog implementation. It will have to
1173** allow for the extra information printed.
1174*/
1175
1176#ifndef TOBUFSIZE
7cfc9c77
EA
1177# if (SYSLOG_BUFSIZE) > 512
1178# define TOBUFSIZE (SYSLOG_BUFSIZE - 256)
1179# else
1180# define TOBUFSIZE 256
1181# endif
a3685d83 1182#endif
9114f86c 1183
77779257
EA
1184/*
1185** Size of prescan buffer.
1186** Despite comments in the _sendmail_ book, this probably should
1187** not be changed; there are some hard-to-define dependencies.
1188*/
1189
1190# define PSBUFSIZE (MAXNAME + MAXATOM) /* size of prescan buffer */
9114f86c
EA
1191/* fork routine -- set above using #ifdef _osname_ or in Makefile */
1192# ifndef FORK
1193# define FORK vfork /* function to call to fork mailer */
1194# endif
5e0139e6
EA
1195
1196/*
1197** If we are going to link scanf anyway, use it in readcf
1198*/
1199
1200#if !defined(HASUNAME) && !defined(SCANF)
1201# define SCANF 1
1202#endif