2 * Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
4 * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
5 * Copyright (c) 1988, 1993
6 * The Regents of the University of California. All rights reserved.
8 * By using this file, you agree to the terms and conditions set
9 * forth in the LICENSE file which can be found at the top level of
10 * the sendmail distribution.
13 * $Id: conf.h,v 8.570 2005/12/09 18:37:27 ca Exp $
20 ** CONF.H -- All user-configurable parameters for sendmail
22 ** Send updates to sendmail@Sendmail.ORG so they will be
23 ** included in the next release.
30 struct rusage; /* forward declaration to get gcc to shut up in wait.h */
33 # include <sys/param.h>
34 # include <sys/types.h>
35 # include <sys/stat.h>
37 /* in QNX this grabs bogus LOCK_* manifests */
38 # include <sys/file.h>
39 # endif /* ! __QNX__ */
40 # include <sys/wait.h>
48 /* make sure TOBUFSIZ isn't larger than system limit for size of exec() args */
51 # define SM_ARG_MAX 4096
52 # else /* ARG_MAX > 4096 */
53 # define SM_ARG_MAX ARG_MAX
54 # endif /* ARG_MAX > 4096 */
56 # define SM_ARG_MAX 4096
59 /**********************************************************************
60 ** Table sizes, etc....
61 ** There shouldn't be much need to change these....
62 ** If you do, be careful, none should be set anywhere near INT_MAX
63 **********************************************************************/
65 #define MAXLINE 2048 /* max line length */
66 #define MAXNAME 256 /* max length of a name */
68 # define MAXAUTHINFO 100 /* max length of authinfo token */
69 #endif /* ! MAXAUTHINFO */
70 #define MAXPV 256 /* max # of parms to mailers */
71 #define MAXATOM 1000 /* max atoms per address */
72 #define MAXRWSETS 200 /* max # of sets of rewriting rules */
73 #define MAXPRIORITIES 25 /* max values for Precedence: field */
74 #define MAXMXHOSTS 100 /* max # of MX records for one host */
75 #define SMTPLINELIM 990 /* max SMTP line length */
76 #define MAXUDBKEY 128 /* max size of a database key (udb only) */
78 # define MAXKEY 1024 /* max size of a database key */
79 #else /* _FFR_MAXKEY */
80 # define MAXKEY (MAXNAME + 1) /* max size of a database key */
81 #endif /* _FFR_MAXKEY */
82 #define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */
83 #define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */
84 #define MAXMAPSTACK 12 /* max # of stacked or sequenced maps */
86 # define MAXFILTERS 25 /* max # of milter filters */
87 # define MAXFILTERMACROS 50 /* max # of macros per milter cmd */
89 #define MAXSMTPARGS 20 /* max # of ESMTP args for MAIL/RCPT */
90 #define MAXTOCLASS 8 /* max # of message timeout classes */
91 #define MAXRESTOTYPES 3 /* max # of resolver timeout types */
92 #define MAXMIMEARGS 20 /* max args in Content-Type: */
93 #define MAXMIMENESTING 20 /* max MIME multipart nesting */
94 #define QUEUESEGSIZE 1000 /* increment for queue size */
96 #ifndef MAXNOOPCOMMANDS
97 # define MAXNOOPCOMMANDS 20 /* max "noise" commands before slowdown */
98 #endif /* ! MAXNOOPCOMMANDS */
101 ** MAXQFNAME == 2 (size of "qf", "df" prefix)
102 ** + 8 (base 60 encoded date, time & sequence number)
103 ** + 10 (base 10 encoded 32 bit process id)
104 ** + 1 (terminating NUL character).
107 #define MAXQFNAME 21 /* max qf file name length + 1 */
108 #define MACBUFSIZE 4096 /* max expanded macro buffer size */
109 #define TOBUFSIZE SM_ARG_MAX /* max buffer to hold address list */
110 #define MAXSHORTSTR 203 /* max short string length */
111 #define MAXMACNAMELEN 25 /* max macro name length */
112 #define MAXMACROID 0377 /* max macro id number */
113 /* Must match (BITMAPBITS - 1) */
115 # define MAXHDRSLEN (32 * 1024) /* max size of message headers */
116 #endif /* ! MAXHDRSLEN */
117 #define MAXDAEMONS 10 /* max number of ports to listen to */
118 #ifndef MAXINTERFACES
119 # define MAXINTERFACES 512 /* number of interfaces to probe */
120 #endif /* MAXINTERFACES */
122 # define MAXSYMLINKS 32 /* max number of symlinks in a path */
123 #endif /* ! MAXSYMLINKS */
124 #define MAXLINKPATHLEN (MAXPATHLEN * MAXSYMLINKS) /* max link-expanded file */
125 #define DATA_PROGRESS_TIMEOUT 300 /* how often to check DATA progress */
126 #define ENHSCLEN 10 /* max len of enhanced status code */
127 #define DEFAULT_MAX_RCPT 100 /* max number of RCPTs per envelope */
128 #define MAXQUEUEGROUPS 50 /* max # of queue groups */
129 /* must be less than BITMAPBITS for DoQueueRun */
130 #define MAXWORKGROUPS 50 /* max # of work groups */
131 #define MAXFILESYS BITMAPBITS /* max # of queue file systems
132 * must be <= BITMAPBITS */
133 #ifndef FILESYS_UPDATE_INTERVAL
134 # define FILESYS_UPDATE_INTERVAL 300 /* how often to update FileSys table */
135 #endif /* FILESYS_UPDATE_INTERVAL */
137 #ifndef SM_DEFAULT_TTL
138 # define SM_DEFAULT_TTL 3600 /* default TTL for services that don't have one */
139 #endif /* SM_DEFAULT_TTL */
142 # ifndef AUTH_MECHANISMS
144 # define AUTH_MECHANISMS "EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5"
145 # else /* STARTTLS */
146 # define AUTH_MECHANISMS "GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5"
147 # endif /* STARTTLS */
148 # endif /* ! AUTH_MECHANISMS */
152 ** Default database permissions (alias, maps, etc.)
153 ** Used by sendmail and libsmdb
157 # define DBMMODE 0640
158 #endif /* ! DBMMODE */
161 ** Value which means a uid or gid value should not change
166 #endif /* ! NO_UID */
169 #endif /* ! NO_GID */
171 /**********************************************************************
172 ** Compilation options.
173 ** #define these to 1 if they are available;
174 ** #define them to 0 otherwise.
175 ** All can be overridden from Makefile.
176 **********************************************************************/
179 # define NETINET 1 /* include internet support */
180 #endif /* ! NETINET */
183 # define NETINET6 0 /* do not include IPv6 support */
184 #endif /* ! NETINET6 */
187 # define NETISO 0 /* do not include ISO socket support */
188 #endif /* ! NETISO */
191 # define NAMED_BIND 1 /* use Berkeley Internet Domain Server */
192 #endif /* ! NAMED_BIND */
195 # define XDEBUG 1 /* enable extended debugging */
196 #endif /* ! XDEBUG */
199 # define MATCHGECOS 1 /* match user names from gecos field */
200 #endif /* ! MATCHGECOS */
203 # define DSN 1 /* include delivery status notification code */
206 #if !defined(USERDB) && (defined(NEWDB) || defined(HESIOD))
207 # define USERDB 1 /* look in user database */
208 #endif /* !defined(USERDB) && (defined(NEWDB) || defined(HESIOD)) */
211 # define MIME8TO7 1 /* 8->7 bit MIME conversions */
212 #endif /* ! MIME8TO7 */
215 # define MIME7TO8 1 /* 7->8 bit MIME conversions */
216 #endif /* ! MIME7TO8 */
220 # define DNSMAP 1 /* DNS map type */
221 # endif /* ! DNSMAP */
222 #endif /* NAMED_BIND */
225 # define PIPELINING 1 /* SMTP PIPELINING */
226 #endif /* PIPELINING */
228 /**********************************************************************
229 ** End of site-specific configuration.
230 **********************************************************************/
234 #endif /* ! CONF_H */