conf.h revision 261363
1/* 2 * Copyright (c) 1998-2002 Proofpoint, Inc. and its suppliers. 3 * All rights reserved. 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. 7 * 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. 11 * 12 * 13 * $Id: conf.h,v 8.577 2013/11/22 20:51:55 ca Exp $ 14 */ 15 16/* 17** CONF.H -- All user-configurable parameters for sendmail 18** 19** Send updates to sendmail@Sendmail.ORG so they will be 20** included in the next release. 21*/ 22 23#ifndef CONF_H 24#define CONF_H 1 25 26#ifdef __GNUC__ 27struct rusage; /* forward declaration to get gcc to shut up in wait.h */ 28#endif /* __GNUC__ */ 29 30# include <sys/param.h> 31# include <sys/types.h> 32# include <sys/stat.h> 33# ifndef __QNX__ 34/* in QNX this grabs bogus LOCK_* manifests */ 35# include <sys/file.h> 36# endif /* ! __QNX__ */ 37# include <sys/wait.h> 38# include <limits.h> 39# include <fcntl.h> 40# include <signal.h> 41# include <netdb.h> 42# include <pwd.h> 43# include <grp.h> 44 45/* make sure TOBUFSIZ isn't larger than system limit for size of exec() args */ 46#ifdef ARG_MAX 47# if ARG_MAX > 4096 48# define SM_ARG_MAX 4096 49# else /* ARG_MAX > 4096 */ 50# define SM_ARG_MAX ARG_MAX 51# endif /* ARG_MAX > 4096 */ 52#else /* ARG_MAX */ 53# define SM_ARG_MAX 4096 54#endif /* ARG_MAX */ 55 56/********************************************************************** 57** Table sizes, etc.... 58** There shouldn't be much need to change these.... 59** If you do, be careful, none should be set anywhere near INT_MAX 60**********************************************************************/ 61 62#define MAXLINE 2048 /* max line length */ 63#if SASL 64# define MAXINPLINE 12288 /* max input line length (for AUTH) */ 65#else /* SASL */ 66# define MAXINPLINE MAXLINE /* max input line length */ 67#endif /* SASL */ 68#define MAXNAME 256 /* max length of a name */ 69#ifndef MAXAUTHINFO 70# define MAXAUTHINFO 100 /* max length of authinfo token */ 71#endif /* ! MAXAUTHINFO */ 72#define MAXPV 256 /* max # of parms to mailers */ 73#define MAXATOM 1000 /* max atoms per address */ 74#define MAXRWSETS 200 /* max # of sets of rewriting rules */ 75#define MAXPRIORITIES 25 /* max values for Precedence: field */ 76#define MAXMXHOSTS 100 /* max # of MX records for one host */ 77#define SMTPLINELIM 990 /* max SMTP line length */ 78#define MAXUDBKEY 128 /* max size of a database key (udb only) */ 79#define MAXKEY 1024 /* max size of a database key */ 80#define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */ 81#define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */ 82#define MAXMAPSTACK 12 /* max # of stacked or sequenced maps */ 83#if MILTER 84# define MAXFILTERS 25 /* max # of milter filters */ 85# define MAXFILTERMACROS 50 /* max # of macros per milter cmd */ 86#endif /* MILTER */ 87#define MAXSMTPARGS 20 /* max # of ESMTP args for MAIL/RCPT */ 88#define MAXTOCLASS 8 /* max # of message timeout classes */ 89#define MAXRESTOTYPES 3 /* max # of resolver timeout types */ 90#define MAXMIMEARGS 20 /* max args in Content-Type: */ 91#define MAXMIMENESTING 20 /* max MIME multipart nesting */ 92#define QUEUESEGSIZE 1000 /* increment for queue size */ 93 94#ifndef MAXNOOPCOMMANDS 95# define MAXNOOPCOMMANDS 20 /* max "noise" commands before slowdown */ 96#endif /* ! MAXNOOPCOMMANDS */ 97 98/* 99** MAXQFNAME == 2 (size of "qf", "df" prefix) 100** + 8 (base 60 encoded date, time & sequence number) 101** + 10 (base 10 encoded 32 bit process id) 102** + 1 (terminating NUL character). 103*/ 104 105#define MAXQFNAME 21 /* max qf file name length + 1 */ 106#define MACBUFSIZE 4096 /* max expanded macro buffer size */ 107#define TOBUFSIZE SM_ARG_MAX /* max buffer to hold address list */ 108#define MAXSHORTSTR 203 /* max short string length */ 109#define MAXMACNAMELEN 25 /* max macro name length */ 110#define MAXMACROID 0377 /* max macro id number */ 111 /* Must match (BITMAPBITS - 1) */ 112#ifndef MAXHDRSLEN 113# define MAXHDRSLEN (32 * 1024) /* max size of message headers */ 114#endif /* ! MAXHDRSLEN */ 115#ifndef MAXDAEMONS 116# define MAXDAEMONS 10 /* max number of ports to listen to */ 117#endif /* MAXDAEMONS */ 118#ifndef MAXINTERFACES 119# define MAXINTERFACES 512 /* number of interfaces to probe */ 120#endif /* MAXINTERFACES */ 121#ifndef MAXSYMLINKS 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#ifndef MAXQUEUEGROUPS 129# define MAXQUEUEGROUPS 50 /* max # of queue groups */ 130 /* must be less than BITMAPBITS for DoQueueRun */ 131#endif /* MAXQUEUEGROUPS */ 132#if MAXQUEUEGROUPS >= BITMAPBITS 133 ERROR _MAXQUEUEGROUPS must be less than _BITMAPBITS 134#endif /* MAXQUEUEGROUPS >= BITMAPBITS */ 135 136#ifndef MAXWORKGROUPS 137# define MAXWORKGROUPS 50 /* max # of work groups */ 138#endif /* MAXWORKGROUPS */ 139 140#define MAXFILESYS BITMAPBITS /* max # of queue file systems 141 * must be <= BITMAPBITS */ 142#ifndef FILESYS_UPDATE_INTERVAL 143# define FILESYS_UPDATE_INTERVAL 300 /* how often to update FileSys table */ 144#endif /* FILESYS_UPDATE_INTERVAL */ 145 146#ifndef SM_DEFAULT_TTL 147# define SM_DEFAULT_TTL 3600 /* default TTL for services that don't have one */ 148#endif /* SM_DEFAULT_TTL */ 149 150#if SASL 151# ifndef AUTH_MECHANISMS 152# if STARTTLS 153# define AUTH_MECHANISMS "EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5" 154# else /* STARTTLS */ 155# define AUTH_MECHANISMS "GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5" 156# endif /* STARTTLS */ 157# endif /* ! AUTH_MECHANISMS */ 158#endif /* SASL */ 159 160/* 161** Default database permissions (alias, maps, etc.) 162** Used by sendmail and libsmdb 163*/ 164 165#ifndef DBMMODE 166# define DBMMODE 0640 167#endif /* ! DBMMODE */ 168 169/* 170** Value which means a uid or gid value should not change 171*/ 172 173#ifndef NO_UID 174# define NO_UID -1 175#endif /* ! NO_UID */ 176#ifndef NO_GID 177# define NO_GID -1 178#endif /* ! NO_GID */ 179 180/********************************************************************** 181** Compilation options. 182** #define these to 1 if they are available; 183** #define them to 0 otherwise. 184** All can be overridden from Makefile. 185**********************************************************************/ 186 187#ifndef NETINET 188# define NETINET 1 /* include internet support */ 189#endif /* ! NETINET */ 190 191#ifndef NETINET6 192# define NETINET6 0 /* do not include IPv6 support */ 193#endif /* ! NETINET6 */ 194 195#ifndef NETISO 196# define NETISO 0 /* do not include ISO socket support */ 197#endif /* ! NETISO */ 198 199#ifndef NAMED_BIND 200# define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ 201#endif /* ! NAMED_BIND */ 202 203#ifndef XDEBUG 204# define XDEBUG 1 /* enable extended debugging */ 205#endif /* ! XDEBUG */ 206 207#ifndef MATCHGECOS 208# define MATCHGECOS 1 /* match user names from gecos field */ 209#endif /* ! MATCHGECOS */ 210 211#ifndef DSN 212# define DSN 1 /* include delivery status notification code */ 213#endif /* ! DSN */ 214 215#if !defined(USERDB) && (defined(NEWDB) || defined(HESIOD)) 216# define USERDB 1 /* look in user database */ 217#endif /* !defined(USERDB) && (defined(NEWDB) || defined(HESIOD)) */ 218 219#ifndef MIME8TO7 220# define MIME8TO7 1 /* 8->7 bit MIME conversions */ 221#endif /* ! MIME8TO7 */ 222 223#ifndef MIME7TO8 224# define MIME7TO8 1 /* 7->8 bit MIME conversions */ 225#endif /* ! MIME7TO8 */ 226 227#if NAMED_BIND 228# ifndef DNSMAP 229# define DNSMAP 1 /* DNS map type */ 230# endif /* ! DNSMAP */ 231#endif /* NAMED_BIND */ 232 233#ifndef PIPELINING 234# define PIPELINING 1 /* SMTP PIPELINING */ 235#endif /* PIPELINING */ 236 237/********************************************************************** 238** End of site-specific configuration. 239**********************************************************************/ 240 241#include <sm/conf.h> 242 243#endif /* ! CONF_H */ 244