xref: /csrg-svn/usr.sbin/sendmail/src/conf.h (revision 59388)
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