1 /* 2 * Copyright (c) 1983 Eric P. Allman 3 * Copyright (c) 1988, 1993 4 * The Regents of the University of California. All rights reserved. 5 * 6 * %sccs.include.redist.c% 7 * 8 * @(#)conf.h 8.50 (Berkeley) 11/14/93 9 */ 10 11 /* 12 ** CONF.H -- All user-configurable parameters for sendmail 13 */ 14 15 # include <sys/param.h> 16 # include <sys/types.h> 17 # include <sys/stat.h> 18 # include <sys/file.h> 19 # include <sys/wait.h> 20 # include <fcntl.h> 21 # include <signal.h> 22 23 /********************************************************************** 24 ** Table sizes, etc.... 25 ** There shouldn't be much need to change these.... 26 **********************************************************************/ 27 28 # define MAXLINE 2048 /* max line length */ 29 # define MAXNAME 256 /* max length of a name */ 30 # define MAXPV 40 /* max # of parms to mailers */ 31 # define MAXATOM 200 /* max atoms per address */ 32 # define MAXMAILERS 25 /* maximum mailers known to system */ 33 # define MAXRWSETS 100 /* max # of sets of rewriting rules */ 34 # define MAXPRIORITIES 25 /* max values for Precedence: field */ 35 # define MAXMXHOSTS 20 /* max # of MX records */ 36 # define SMTPLINELIM 990 /* maximum SMTP line length */ 37 # define MAXKEY 128 /* maximum size of a database key */ 38 # define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */ 39 # define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */ 40 # define MAXALIASDB 12 /* max # of alias databases */ 41 # define PSBUFSIZE (MAXLINE + MAXATOM) /* size of prescan buffer */ 42 43 # ifndef QUEUESIZE 44 # define QUEUESIZE 1000 /* max # of jobs per queue run */ 45 # endif 46 47 /********************************************************************** 48 ** Compilation options. 49 ** 50 ** #define these if they are available; comment them out otherwise. 51 **********************************************************************/ 52 53 # define LOG 1 /* enable logging */ 54 # define UGLYUUCP 1 /* output ugly UUCP From lines */ 55 # define NETUNIX 1 /* include unix domain support */ 56 # define NETINET 1 /* include internet support */ 57 # define SETPROCTITLE 1 /* munge argv to display current status */ 58 # define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ 59 # define MATCHGECOS 1 /* match user names from gecos field */ 60 # define XDEBUG 1 /* enable extended debugging */ 61 62 # ifdef NEWDB 63 # define USERDB 1 /* look in user database (requires NEWDB) */ 64 # endif 65 66 /* 67 ** Due to a "feature" in some operating systems such as Ultrix 4.3 and 68 ** HPUX 8.0, if you receive a "No route to host" message (ICMP message 69 ** ICMP_UNREACH_HOST) on _any_ connection, all connections to that host 70 ** are closed. Some firewalls return this error if you try to connect 71 ** to the IDENT port (113), so you can't receive email from these hosts 72 ** on these systems. The firewall really should use a more specific 73 ** message such as ICMP_UNREACH_PROTOCOL or _PORT or _NET_PROHIB. This 74 ** will get #undefed below as needed. 75 */ 76 77 # define IDENTPROTO 1 /* use IDENT proto (RFC 1413) */ 78 79 /********************************************************************** 80 ** Operating system configuration. 81 ** 82 ** Unless you are porting to a new OS, you shouldn't have to 83 ** change these. 84 **********************************************************************/ 85 86 /* 87 ** Per-Operating System defines 88 */ 89 90 91 /* 92 ** HP-UX -- tested for 8.07 93 */ 94 95 # ifdef __hpux 96 /* avoid m_flags conflict between db.h & sys/sysmacros.h on HP 300 */ 97 # undef m_flags 98 # define SYSTEM5 1 /* include all the System V defines */ 99 # define HASINITGROUPS 1 /* has initgroups(3) call */ 100 # define HASSTATFS 1 /* has the statfs(2) syscall */ 101 # define HASSETREUID 1 /* has setreuid(2) call */ 102 # define setreuid(r, e) setresuid(r, e, -1) 103 # define LA_TYPE LA_FLOAT 104 # define _PATH_UNIX "/hp-ux" 105 # undef IDENTPROTO /* TCP/IP implementation is broken */ 106 # endif 107 108 109 /* 110 ** IBM AIX 3.x -- actually tested for 3.2.3 111 */ 112 113 # ifdef _AIX3 114 # define HASINITGROUPS 1 /* has initgroups(3) call */ 115 # define HASSTATFS 1 /* has the statfs(2) syscall */ 116 # define HASUNAME 1 /* use System V uname(2) system call */ 117 # define FORK fork /* no vfork primitive available */ 118 # undef SETPROCTITLE /* setproctitle confuses AIX */ 119 # endif 120 121 122 /* 123 ** Silicon Graphics IRIX 124 ** 125 ** Compiles on 4.0.1. 126 */ 127 128 # ifdef IRIX 129 # include <sys/sysmacros.h> 130 # define HASSETREUID 1 /* has setreuid(2) call */ 131 # define HASINITGROUPS 1 /* has initgroups(3) call */ 132 # define HASSTATFS 1 /* has the statfs(2) syscall */ 133 # define FORK fork /* no vfork primitive available */ 134 # define WAITUNION 1 /* use "union wait" as wait argument type */ 135 # define setpgid BSDsetpgrp 136 # define GIDSET_T gid_t 137 # endif 138 139 140 /* 141 ** SunOS and Solaris 142 ** 143 ** Tested on SunOS 4.1.x (a.k.a. Solaris 1.1.x) and 144 ** Solaris 2.2 (a.k.a. SunOS 5.2). 145 */ 146 147 #if defined(sun) && !defined(BSD) 148 149 # define LA_TYPE LA_INT 150 # define HASSETREUID 1 /* has setreuid(2) call */ 151 # define HASINITGROUPS 1 /* has initgroups(3) call */ 152 # define HASUNAME 1 /* use System V uname(2) system call */ 153 154 # ifdef SOLARIS_2_3 155 # define SOLARIS 156 # endif 157 158 # ifdef SOLARIS 159 /* Solaris 2.x (a.k.a. SunOS 5.x) */ 160 # define SYSTEM5 1 /* use System V definitions */ 161 # define setreuid(r, e) seteuid(e) 162 # include <sys/time.h> 163 # define gethostbyname solaris_gethostbyname /* get working version */ 164 # define gethostbyaddr solaris_gethostbyaddr /* get working version */ 165 # define _PATH_UNIX "/kernel/unix" 166 # ifndef _PATH_SENDMAILCF 167 # define _PATH_SENDMAILCF "/etc/mail/sendmail.cf" 168 # endif 169 # ifndef _PATH_SENDMAILPID 170 # define _PATH_SENDMAILPID "/etc/mail/sendmail.pid" 171 # endif 172 173 # else 174 /* SunOS 4.1.x */ 175 # define HASSTATFS 1 /* has the statfs(2) syscall */ 176 # define HASFLOCK 1 /* has flock(2) call */ 177 # include <vfork.h> 178 179 # endif 180 #endif 181 182 /* 183 ** DG/UX 184 ** 185 ** Tested on 5.4.2 186 */ 187 188 #ifdef DGUX 189 # define SYSTEM5 1 190 # define LA_TYPE LA_SUBR 191 # define HASSTATFS 1 /* has the statfs(2) syscall */ 192 # define HASSETREUID 1 /* has setreuid(2) call */ 193 # define HASUNAME 1 /* use System V uname(2) system call */ 194 # define HASSETSID 1 /* has Posix setsid(2) call */ 195 # define HASINITGROUPS 1 /* has initgroups(3) call */ 196 # define HASSETVBUF 1 /* we have setvbuf(3) in libc */ 197 # undef IDENTPROTO /* TCP/IP implementation is broken */ 198 # undef SETPROCTITLE 199 200 /* these include files must be included early on DG/UX */ 201 # include <netinet/in.h> 202 # include <arpa/inet.h> 203 204 # define inet_addr dgux_inet_addr 205 extern long dgux_inet_addr(); 206 #endif 207 208 209 /* 210 ** Digital Ultrix 4.2A or 4.3 211 ** 212 ** Apparently, fcntl locking is broken on 4.2A, in that locks are 213 ** not dropped when the process exits. This causes major problems, 214 ** so flock is the only alternative. 215 */ 216 217 #ifdef ultrix 218 # define HASSTATFS 1 /* has the statfs(2) syscall */ 219 # define HASSETREUID 1 /* has setreuid(2) call */ 220 # define HASUNSETENV 1 /* has unsetenv(3) call */ 221 # define HASINITGROUPS 1 /* has initgroups(3) call */ 222 # define HASFLOCK 1 /* has flock(2) call */ 223 # define LA_TYPE LA_INT 224 # define LA_AVENRUN "avenrun" 225 # undef IDENTPROTO /* TCP/IP implementation is broken */ 226 #endif 227 228 229 /* 230 ** OSF/1 (tested on Alpha) 231 */ 232 233 #ifdef __osf__ 234 # define HASSTATFS 1 /* has the statfs(2) syscall */ 235 # define HASUNSETENV 1 /* has unsetenv(3) call */ 236 # define HASSETREUID 1 /* has setreuid(2) call */ 237 # define HASINITGROUPS 1 /* has initgroups(3) call */ 238 # define HASFLOCK 1 /* has flock(2) call */ 239 # define LA_TYPE LA_INT 240 # ifndef _PATH_SENDMAILPID 241 # define _PATH_SENDMAILPID "/var/run/sendmial.pid" 242 # endif 243 #endif 244 245 246 /* 247 ** NeXTstep 248 */ 249 250 #ifdef NeXT 251 # define HASINITGROUPS 1 /* has initgroups(3) call */ 252 # define HASFLOCK 1 /* has flock(2) call */ 253 # define NEEDGETOPT 1 /* need a replacement for getopt(3) */ 254 # define HASSTATFS 1 /* has the statfs(2) syscall */ 255 # define WAITUNION 1 /* use "union wait" as wait argument type */ 256 # define sleep sleepX 257 # define setpgid setpgrp 258 # ifndef LA_TYPE 259 # define LA_TYPE LA_MACH 260 # endif 261 # ifndef _POSIX_SOURCE 262 typedef int pid_t; 263 # undef WEXITSTATUS 264 # undef WIFEXITED 265 # endif 266 # ifndef _PATH_SENDMAILCF 267 # define _PATH_SENDMAILCF "/etc/sendmail/sendmail.cf" 268 # endif 269 # ifndef _PATH_SENDMAILPID 270 # define _PATH_SENDMAILPID "/etc/sendmail/sendmail.pid" 271 # endif 272 #endif 273 274 275 /* 276 ** 4.4 BSD 277 ** 278 ** See also BSD defines. 279 */ 280 281 #ifdef BSD4_4 282 # define HASUNSETENV 1 /* has unsetenv(3) call */ 283 # define HASSTATFS 1 /* has the statfs(2) syscall */ 284 # include <sys/cdefs.h> 285 # define ERRLIST_PREDEFINED /* don't declare sys_errlist */ 286 # ifndef LA_TYPE 287 # define LA_TYPE LA_SUBR 288 # endif 289 #endif 290 291 292 /* 293 ** 386BSD / FreeBSD 1.0E (works) / NetBSD (not tested) 294 ** 295 ** 4.3BSD clone, closer to 4.4BSD 296 ** 297 ** See also BSD defines. 298 */ 299 300 #ifdef __386BSD__ 301 # define HASUNSETENV 1 /* has unsetenv(3) call */ 302 # define HASSETSID 1 /* has the setsid(2) POSIX syscall */ 303 # define HASSTATFS 1 /* has the statfs(2) syscall */ 304 # include <sys/cdefs.h> 305 # define ERRLIST_PREDEFINED /* don't declare sys_errlist */ 306 # ifndef LA_TYPE 307 # define LA_TYPE LA_SUBR 308 # endif 309 #endif 310 311 312 /* 313 ** Mach386 314 ** 315 ** For mt Xinu's Mach386 system. 316 */ 317 318 #if defined(MACH) && defined(i386) 319 # define MACH386 1 320 # define HASUNSETENV 1 /* has unsetenv(3) call */ 321 # define HASINITGROUPS 1 /* has initgroups(3) call */ 322 # define HASFLOCK 1 /* has flock(2) call */ 323 # define HASSTATFS 1 /* has the statfs(2) syscall */ 324 # define NEEDGETOPT 1 /* need a replacement for getopt(3) */ 325 # define NEEDSTRTOL 1 /* need the strtol() function */ 326 # define setpgid setpgrp 327 # ifndef LA_TYPE 328 # define LA_TYPE LA_FLOAT 329 # endif 330 # undef WEXITSTATUS 331 # undef WIFEXITED 332 # ifndef _PATH_SENDMAILCF 333 # define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" 334 # endif 335 # ifndef _PATH_SENDMAILPID 336 # define _PATH_SENDMAILPID "/etc/sendmail.pid" 337 # endif 338 #endif 339 340 341 /* 342 ** 4.3 BSD -- this is for very old systems 343 ** 344 ** You'll also have to install a new resolver library. 345 ** I don't guarantee that support for this environment is complete. 346 */ 347 348 #ifdef oldBSD43 349 # define NEEDVPRINTF 1 /* need a replacement for vprintf(3) */ 350 # define NEEDGETOPT 1 /* need a replacement for getopt(3) */ 351 # define ARBPTR_T char * 352 # define setpgid setpgrp 353 # ifndef LA_TYPE 354 # define LA_TYPE LA_FLOAT 355 # endif 356 # ifndef _PATH_SENDMAILCF 357 # define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" 358 # endif 359 # undef IDENTPROTO /* TCP/IP implementation is broken */ 360 # undef WEXITSTATUS 361 # undef WIFEXITED 362 typedef short pid_t; 363 extern int errno; 364 #endif 365 366 367 /* 368 ** SCO Unix 369 */ 370 371 #ifdef _SCO_unix_ 372 # define SYSTEM5 1 /* include all the System V defines */ 373 # define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */ 374 # define HASSTATFS 1 /* has the statfs(2) syscall */ 375 # define FORK fork 376 # define MAXPATHLEN PATHSIZE 377 # define LA_TYPE LA_SHORT 378 # undef NETUNIX /* no unix domain socket support */ 379 #endif 380 381 382 /* 383 ** ConvexOS 11.0 and later 384 */ 385 386 #ifdef _CONVEX_SOURCE 387 # define BSD 1 /* include all the BSD defines */ 388 # define HASUNAME 1 /* use System V uname(2) system call */ 389 # define HASSTATFS 1 /* has the statfs(2) syscall */ 390 # define HASSETSID 1 /* has POSIX setsid(2) call */ 391 # define NEEDGETOPT 1 /* need replacement for getopt(3) */ 392 # define LA_TYPE LA_FLOAT 393 # undef IDENTPROTO 394 #endif 395 396 397 /* 398 ** RISC/os 4.51 399 ** 400 ** Untested... 401 */ 402 403 #ifdef RISCOS 404 # define HASUNSETENV 1 /* has unsetenv(3) call */ 405 # define HASFLOCK 1 /* has flock(2) call */ 406 # define LA_TYPE LA_INT 407 # define LA_AVENRUN "avenrun" 408 # define _PATH_UNIX "/unix" 409 #endif 410 411 412 /* 413 ** Linux 0.99pl10 and above... 414 ** From Karl London <karl@borg.demon.co.uk>. 415 */ 416 417 #ifdef __linux__ 418 # define BSD 1 /* pretend to be BSD based today */ 419 # undef NEEDVPRINTF 1 /* need a replacement for vprintf(3) */ 420 # define NEEDGETOPT 1 /* need a replacement for getopt(3) */ 421 # define HASUNSETENV 1 /* has unsetenv(3) call */ 422 # ifndef LA_TYPE 423 # define LA_TYPE LA_FLOAT 424 # endif 425 # include <sys/sysmacros.h> 426 #endif 427 428 429 /* 430 ** DELL SVR4 Issue 2.2, and others 431 ** From Kimmo Suominen <kim@grendel.lut.fi> 432 ** 433 ** It's on #ifdef DELL_SVR4 because Solaris also gets __svr4__ 434 ** defined, and the definitions conflict. 435 */ 436 437 #ifdef DELL_SVR4 438 # define SYSTEM5 1 439 /* # define setreuid(r, e) seteuid(e) */ 440 /* # include <sys/time.h> */ 441 # define _PATH_UNIX "/unix" 442 # ifndef _PATH_SENDMAILCF 443 # define _PATH_SENDMAILCF "/usr/ucblib/sendmail.cf" 444 # endif 445 # ifndef _PATH_SENDMAILPID 446 # define _PATH_SENDMAILPID "/usr/ucblib/sendmail.pid" 447 # endif 448 #endif 449 450 451 /* 452 ** Apple A/UX 3.0 453 */ 454 455 #ifdef _AUX_SOURCE 456 # include <sys/sysmacros.h> 457 # define BSD /* has BSD routines */ 458 # define HASSTATFS 1 /* has the statfs(2) syscall */ 459 # define HASUNAME 1 /* use System V uname(2) system call */ 460 # define HASUSTAT 1 /* use System V ustat(2) syscall */ 461 # define HASSETVBUF 1 /* we have setvbuf(3) in libc */ 462 # define SIGFUNC_DEFINED /* sigfunc_t already defined */ 463 # undef IDENTPROTO /* TCP/IP implementation is broken */ 464 # define FORK fork 465 # ifndef _PATH_SENDMAILCF 466 # define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" 467 # endif 468 # ifndef LA_TYPE 469 # define LA_TYPE LA_ZERO 470 # endif 471 # undef WIFEXITED 472 # undef WEXITSTATUS 473 #endif 474 475 476 /* 477 ** Encore UMAX V 478 ** 479 ** Not extensively tested. 480 */ 481 482 #ifdef UMAXV 483 # include <limits.h> 484 # define HASUNAME 1 /* use System V uname(2) system call */ 485 # define HASSTATFS 1 /* has the statfs(2) syscall */ 486 # define HASSETVBUF 1 /* we have setvbuf(3) in libc */ 487 # define HASINITGROUPS 1 /* has initgroups(3) call */ 488 # define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */ 489 # define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */ 490 # define FORK fork /* no vfork(2) primitive available */ 491 # define MAXPATHLEN PATH_MAX 492 extern struct passwd *getpwent(), *getpwnam(), *getpwuid(); 493 extern struct group *getgrent(), *getgrnam(), *getgrgid(); 494 # undef WIFEXITED 495 # undef WEXITSTATUS 496 #endif 497 498 499 500 /********************************************************************** 501 ** End of Per-Operating System defines 502 **********************************************************************/ 503 504 /********************************************************************** 505 ** More general defines 506 **********************************************************************/ 507 508 /* general BSD defines */ 509 #ifdef BSD 510 # define HASGETDTABLESIZE 1 /* has getdtablesize(2) call */ 511 # define HASSETREUID 1 /* has setreuid(2) call */ 512 # define HASINITGROUPS 1 /* has initgroups(2) call */ 513 # define HASFLOCK 1 /* has flock(2) call */ 514 #endif 515 516 /* general System V defines */ 517 # ifdef SYSTEM5 518 # include <sys/sysmacros.h> 519 # define HASUNAME 1 /* use System V uname(2) system call */ 520 # define HASUSTAT 1 /* use System V ustat(2) syscall */ 521 # define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */ 522 # ifndef LA_TYPE 523 # define LA_TYPE LA_INT 524 # endif 525 # define bcopy(s, d, l) (memmove((d), (s), (l))) 526 # define bzero(d, l) (memset((d), '\0', (l))) 527 # define bcmp(s, d, l) (memcmp((s), (d), (l))) 528 # endif 529 530 /* general "standard C" defines */ 531 #if (defined(__STDC__) && !defined(MACH386)) || defined(SYSTEM5) 532 # define HASSETVBUF 1 /* we have setvbuf(3) in libc */ 533 #endif 534 535 /* general POSIX defines */ 536 #ifdef _POSIX_VERSION 537 # define HASSETSID 1 /* has Posix setsid(2) call */ 538 # define HASWAITPID 1 /* has Posix waitpid(2) call */ 539 #endif 540 541 /* 542 ** If no type for argument two of getgroups call is defined, assume 543 ** it's an integer -- unfortunately, there seem to be several choices 544 ** here. 545 */ 546 547 #ifndef GIDSET_T 548 # define GIDSET_T int 549 #endif 550 551 552 /********************************************************************** 553 ** Remaining definitions should never have to be changed. They are 554 ** primarily to provide back compatibility for older systems -- for 555 ** example, it includes some POSIX compatibility definitions 556 **********************************************************************/ 557 558 /* System 5 compatibility */ 559 #ifndef S_ISREG 560 #define S_ISREG(foo) ((foo & S_IFREG) == S_IFREG) 561 #endif 562 #ifndef S_IWGRP 563 #define S_IWGRP 020 564 #endif 565 #ifndef S_IWOTH 566 #define S_IWOTH 002 567 #endif 568 569 /* 570 ** Older systems don't have this error code -- it should be in 571 ** /usr/include/sysexits.h. 572 */ 573 574 # ifndef EX_CONFIG 575 # define EX_CONFIG 78 /* configuration error */ 576 # endif 577 578 /* pseudo-code used in server SMTP */ 579 # define EX_QUIT 22 /* drop out of server immediately */ 580 581 582 /* 583 ** These are used in a few cases where we need some special 584 ** error codes, but where the system doesn't provide something 585 ** reasonable. They are printed in errstring. 586 */ 587 588 #ifndef E_PSEUDOBASE 589 # define E_PSEUDOBASE 256 590 #endif 591 592 #define EOPENTIMEOUT (E_PSEUDOBASE + 0) /* timeout on open */ 593 #define E_DNSBASE (E_PSEUDOBASE + 20) /* base for DNS h_errno */ 594 595 /* type of arbitrary pointer */ 596 #ifndef ARBPTR_T 597 # define ARBPTR_T void * 598 #endif 599 600 #ifndef __P 601 # include "cdefs.h" 602 #endif 603 604 /* 605 ** Do some required dependencies 606 */ 607 608 #if defined(NETINET) || defined(NETISO) 609 # define SMTP 1 /* enable user and server SMTP */ 610 # define QUEUE 1 /* enable queueing */ 611 # define DAEMON 1 /* include the daemon (requires IPC & SMTP) */ 612 #endif 613 614 615 /* 616 ** Arrange to use either varargs or stdargs 617 */ 618 619 # ifdef __STDC__ 620 621 # include <stdarg.h> 622 623 # define VA_LOCAL_DECL va_list ap; 624 # define VA_START(f) va_start(ap, f) 625 # define VA_END va_end(ap) 626 627 # else 628 629 # include <varargs.h> 630 631 # define VA_LOCAL_DECL va_list ap; 632 # define VA_START(f) va_start(ap) 633 # define VA_END va_end(ap) 634 635 # endif 636 637 #ifdef HASUNAME 638 # include <sys/utsname.h> 639 # ifdef newstr 640 # undef newstr 641 # endif 642 #else /* ! HASUNAME */ 643 # define NODE_LENGTH 32 644 struct utsname 645 { 646 char nodename[NODE_LENGTH+1]; 647 }; 648 #endif /* HASUNAME */ 649 650 #if !defined(MAXHOSTNAMELEN) && !defined(_SCO_unix_) 651 # define MAXHOSTNAMELEN 256 652 #endif 653 654 #if !defined(SIGCHLD) && defined(SIGCLD) 655 # define SIGCHLD SIGCLD 656 #endif 657 658 #ifndef STDIN_FILENO 659 #define STDIN_FILENO 0 660 #endif 661 662 #ifndef STDOUT_FILENO 663 #define STDOUT_FILENO 1 664 #endif 665 666 #ifndef STDERR_FILENO 667 #define STDERR_FILENO 2 668 #endif 669 670 #ifndef LOCK_SH 671 # define LOCK_SH 0x01 /* shared lock */ 672 # define LOCK_EX 0x02 /* exclusive lock */ 673 # define LOCK_NB 0x04 /* non-blocking lock */ 674 # define LOCK_UN 0x08 /* unlock */ 675 #endif 676 677 #ifndef SIG_ERR 678 # define SIG_ERR ((void (*)()) -1) 679 #endif 680 681 #ifndef WEXITSTATUS 682 # define WEXITSTATUS(st) (((st) >> 8) & 0377) 683 #endif 684 #ifndef WIFEXITED 685 # define WIFEXITED(st) (((st) & 0377) == 0) 686 #endif 687 688 #ifndef SIGFUNC_DEFINED 689 typedef void (*sigfunc_t) __P((int)); 690 #endif 691 692 /* 693 ** Size of tobuf (deliver.c) 694 ** Tweak this to match your syslog implementation. It will have to 695 ** allow for the extra information printed. 696 */ 697 698 #ifndef TOBUFSIZE 699 # define TOBUFSIZE (1024 - 256) 700 #endif 701 702 /* fork routine -- set above using #ifdef _osname_ or in Makefile */ 703 # ifndef FORK 704 # define FORK vfork /* function to call to fork mailer */ 705 # endif 706