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.16 (Berkeley) 04/13/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 1024 /* max line length */ 24 # define MAXNAME 256 /* max length of a name */ 25 # define MAXPV 40 /* max # of parms to mailers */ 26 # define MAXATOM 100 /* 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 (MAXNAME * 4) /* 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 SMTP 1 /* enable user and server SMTP */ 54 # define QUEUE 1 /* enable queueing */ 55 # define UGLYUUCP 1 /* output ugly UUCP From lines */ 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 61 # ifdef NEWDB 62 # define USERDB 1 /* look in user database (requires NEWDB) */ 63 # define BTREE_MAP 1 /* enable BTREE mapping type (requires NEWDB) */ 64 # define HASH_MAP 1 /* enable HASH mapping type (requires NEWDB) */ 65 # endif 66 67 # ifdef NDBM 68 # define DBM_MAP 1 /* enable DBM mapping type (requires NDBM) */ 69 # endif 70 71 /* 72 ** Operating system configuration. 73 ** 74 ** Unless you are porting to a new OS, you shouldn't have to 75 ** change these. 76 */ 77 78 # ifdef hpux 79 # define SYSTEM5 1 80 # endif 81 82 # ifdef SYSTEM5 83 84 # define LOCKF 1 /* use System V lockf instead of flock */ 85 # define SYS5TZ 1 /* use System V style timezones */ 86 # define HASUNAME 1 /* use System V uname system call */ 87 88 #ifdef sun 89 # include <vfork.h> 90 #endif 91 92 # endif 93 94 /* 95 ** Remaining definitions should never have to be changed. They are 96 ** primarily to provide back compatibility for older systems -- for 97 ** example, it includes some POSIX compatibility definitions */ 98 99 /* 100 ** Older systems don't have this error code -- it should be in 101 ** /usr/include/sysexits.h. 102 */ 103 104 # ifndef EX_CONFIG 105 # define EX_CONFIG 78 /* configuration error */ 106 # endif 107 108 /* 109 ** Do some required dependencies 110 */ 111 112 #if defined(NETINET) || defined(NETISO) 113 # define DAEMON 1 114 # define SMTP 1 115 # define QUEUE 1 116 #endif 117 118 119 /* 120 ** Arrange to use either varargs or stdargs 121 */ 122 123 # ifdef __STDC__ 124 125 # include <stdarg.h> 126 127 # define VA_LOCAL_DECL va_list ap; 128 # define VA_START(f) va_start(ap, f) 129 # define VA_END va_end(ap) 130 131 # else 132 133 # include <varargs.h> 134 135 # define VA_LOCAL_DECL va_list ap; 136 # define VA_START(f) va_start(ap) 137 # define VA_END va_end(ap) 138 139 # endif 140 141 #ifdef HASUNAME 142 # include <sys/utsname.h> 143 # ifdef newstr 144 # undef newstr 145 # endif 146 #else /* ! HASUNAME */ 147 # define NODE_LENGTH 32 148 struct utsname 149 { 150 char nodename[NODE_LENGTH+1]; 151 }; 152 #endif /* HASUNAME */ 153 154 #ifndef MAXHOSTNAMELEN 155 #define MAXHOSTNAMELEN 256 156 #endif 157 158 #if !defined(SIGCHLD) && defined(SIGCLD) 159 # define SIGCHLD SIGCLD 160 #endif 161 162 #ifndef STDIN_FILENO 163 #define STDIN_FILENO 0 164 #endif 165 166 #ifndef STDOUT_FILENO 167 #define STDOUT_FILENO 1 168 #endif 169 170 #ifndef STDERR_FILENO 171 #define STDERR_FILENO 2 172 #endif 173 174 #ifdef LOCKF 175 #define LOCK_SH 0x01 /* shared lock */ 176 #define LOCK_EX 0x02 /* exclusive lock */ 177 #define LOCK_NB 0x04 /* non-blocking lock */ 178 179 #else 180 181 # include <sys/file.h> 182 183 #endif 184 185 /* 186 ** Size of tobuf (deliver.c) 187 ** Tweak this to match your syslog implementation. It will have to 188 ** allow for the extra information printed. 189 */ 190 191 #ifndef TOBUFSIZE 192 # define TOBUFSIZE (1024 - 256) 193 #endif 194