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