1 /* 2 * Copyright (c) 1983 Eric P. Allman 3 * Copyright (c) 1988 Regents of the University of California. 4 * All rights reserved. 5 * 6 * %sccs.include.redist.c% 7 * 8 * @(#)conf.h 6.24 (Berkeley) 04/27/93 9 */ 10 11 /* 12 ** CONF.H -- All user-configurable parameters for sendmail 13 */ 14 15 # include <sys/param.h> 16 # include <fcntl.h> 17 18 /* 19 ** Table sizes, etc.... 20 ** There shouldn't be much need to change these.... 21 */ 22 23 # define MAXLINE 2048 /* max line length */ 24 # define MAXNAME 256 /* max length of a name */ 25 # define MAXPV 40 /* max # of parms to mailers */ 26 # define MAXATOM 200 /* max atoms per address */ 27 # define MAXMAILERS 25 /* maximum mailers known to system */ 28 # define MAXRWSETS 100 /* max # of sets of rewriting rules */ 29 # define MAXPRIORITIES 25 /* max values for Precedence: field */ 30 # define MAXMXHOSTS 20 /* max # of MX records */ 31 # define SMTPLINELIM 990 /* maximum SMTP line length */ 32 # define MAXKEY 128 /* maximum size of a database key */ 33 # define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */ 34 # define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */ 35 # define MAXIPADDR 16 /* max # of IP addrs for this host */ 36 # define PSBUFSIZE (MAXLINE + MAXATOM) /* size of prescan buffer */ 37 38 # ifndef QUEUESIZE 39 # define QUEUESIZE 1000 /* max # of jobs per queue run */ 40 # endif 41 42 # ifndef FORK 43 # define FORK vfork /* function to call to fork mailer */ 44 # endif 45 46 /* 47 ** Compilation options. 48 ** 49 ** #define these if they are available; comment them out otherwise. 50 */ 51 52 # define LOG 1 /* enable logging */ 53 # define UGLYUUCP 1 /* output ugly UUCP From lines */ 54 # define NETINET 1 /* include internet support */ 55 # define SETPROCTITLE 1 /* munge argv to display current status */ 56 # define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ 57 # define MATCHGECOS 1 /* match user names from gecos field */ 58 59 # ifdef NEWDB 60 # define USERDB 1 /* look in user database (requires NEWDB) */ 61 # define BTREE_MAP 1 /* enable BTREE mapping type (requires NEWDB) */ 62 # define HASH_MAP 1 /* enable HASH mapping type (requires NEWDB) */ 63 # endif 64 65 # ifdef NDBM 66 # define DBM_MAP 1 /* enable DBM mapping type (requires NDBM) */ 67 # endif 68 69 /* 70 ** Operating system configuration. 71 ** 72 ** Unless you are porting to a new OS, you shouldn't have to 73 ** change these. 74 */ 75 76 # ifdef __hpux 77 # define SYSTEM5 1 78 # endif 79 80 # ifdef SYSTEM5 81 82 # define LOCKF 1 /* use System V lockf instead of flock */ 83 # define SYS5TZ 1 /* use System V style timezones */ 84 # define HASUNAME 1 /* use System V uname system call */ 85 86 # endif 87 88 #ifdef sun 89 # include <vfork.h> 90 #endif 91 92 #ifdef _POSIX_VERSION 93 # define HASSETSID 1 /* has setsid(2) call */ 94 #endif 95 96 #ifdef NeXT 97 # define sleep sleepX 98 #endif 99 100 /* 101 ** Due to a "feature" in some operating systems such as Ultrix 4.3 and 102 ** HPUX 8.0, if you receive a "No route to host" message (ICMP message 103 ** ICMP_UNREACH_HOST) on _any_ connection, all connections to that host 104 ** are closed. Some firewalls return this error if you try to connect 105 ** to the IDENT port (113), so you can't receive email from these hosts 106 ** on these systems. The firewall really should use a more specific 107 ** message such as ICMP_UNREACH_PROTOCOL or _PORT or _NET_PROHIB. 108 */ 109 110 #if !defined(ultrix) && !defined(__hpux) 111 # define IDENTPROTO 1 /* use IDENT proto (RFC 1413) */ 112 #endif 113 114 /* 115 ** Remaining definitions should never have to be changed. They are 116 ** primarily to provide back compatibility for older systems -- for 117 ** example, it includes some POSIX compatibility definitions 118 */ 119 120 /* System 5 compatibility */ 121 #ifndef S_ISREG 122 #define S_ISREG(foo) ((foo & S_IFREG) == S_IFREG) 123 #endif 124 #ifndef S_IWGRP 125 #define S_IWGRP 020 126 #endif 127 #ifndef S_IWOTH 128 #define S_IWOTH 002 129 #endif 130 131 /* 132 ** Older systems don't have this error code -- it should be in 133 ** /usr/include/sysexits.h. 134 */ 135 136 # ifndef EX_CONFIG 137 # define EX_CONFIG 78 /* configuration error */ 138 # endif 139 140 /* 141 ** Do some required dependencies 142 */ 143 144 #if defined(NETINET) || defined(NETISO) 145 # define SMTP 1 /* enable user and server SMTP */ 146 # define QUEUE 1 /* enable queueing */ 147 # define DAEMON 1 /* include the daemon (requires IPC & SMTP) */ 148 #endif 149 150 151 /* 152 ** Arrange to use either varargs or stdargs 153 */ 154 155 # ifdef __STDC__ 156 157 # include <stdarg.h> 158 159 # define VA_LOCAL_DECL va_list ap; 160 # define VA_START(f) va_start(ap, f) 161 # define VA_END va_end(ap) 162 163 # else 164 165 # include <varargs.h> 166 167 # define VA_LOCAL_DECL va_list ap; 168 # define VA_START(f) va_start(ap) 169 # define VA_END va_end(ap) 170 171 # endif 172 173 #ifdef HASUNAME 174 # include <sys/utsname.h> 175 # ifdef newstr 176 # undef newstr 177 # endif 178 #else /* ! HASUNAME */ 179 # define NODE_LENGTH 32 180 struct utsname 181 { 182 char nodename[NODE_LENGTH+1]; 183 }; 184 #endif /* HASUNAME */ 185 186 #ifndef MAXHOSTNAMELEN 187 #define MAXHOSTNAMELEN 256 188 #endif 189 190 #if !defined(SIGCHLD) && defined(SIGCLD) 191 # define SIGCHLD SIGCLD 192 #endif 193 194 #ifndef STDIN_FILENO 195 #define STDIN_FILENO 0 196 #endif 197 198 #ifndef STDOUT_FILENO 199 #define STDOUT_FILENO 1 200 #endif 201 202 #ifndef STDERR_FILENO 203 #define STDERR_FILENO 2 204 #endif 205 206 #ifdef LOCKF 207 #define LOCK_SH 0x01 /* shared lock */ 208 #define LOCK_EX 0x02 /* exclusive lock */ 209 #define LOCK_NB 0x04 /* non-blocking lock */ 210 211 #else 212 213 # include <sys/file.h> 214 215 #endif 216 217 /* 218 ** Size of tobuf (deliver.c) 219 ** Tweak this to match your syslog implementation. It will have to 220 ** allow for the extra information printed. 221 */ 222 223 #ifndef TOBUFSIZE 224 # define TOBUFSIZE (1024 - 256) 225 #endif 226