conf.h revision 157006
1/* 2 * Copyright (c) 1998-2002 Sendmail, 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.570 2005/12/09 18:37:27 ca Exp $ 14 * 15 * $FreeBSD: head/contrib/sendmail/src/conf.h 157006 2006-03-22 16:45:56Z gshapiro $ 16 * 17 */ 18 19/* 20** CONF.H -- All user-configurable parameters for sendmail 21** 22** Send updates to sendmail@Sendmail.ORG so they will be 23** included in the next release. 24*/ 25 26#ifndef CONF_H 27#define CONF_H 1 28 29#ifdef __GNUC__ 30struct rusage; /* forward declaration to get gcc to shut up in wait.h */ 31#endif /* __GNUC__ */ 32 33# include <sys/param.h> 34# include <sys/types.h> 35# include <sys/stat.h> 36# ifndef __QNX__ 37/* in QNX this grabs bogus LOCK_* manifests */ 38# include <sys/file.h> 39# endif /* ! __QNX__ */ 40# include <sys/wait.h> 41# include <limits.h> 42# include <fcntl.h> 43# include <signal.h> 44# include <netdb.h> 45# include <pwd.h> 46# include <grp.h> 47 48/* make sure TOBUFSIZ isn't larger than system limit for size of exec() args */ 49#ifdef ARG_MAX 50# if ARG_MAX > 4096 51# define SM_ARG_MAX 4096 52# else /* ARG_MAX > 4096 */ 53# define SM_ARG_MAX ARG_MAX 54# endif /* ARG_MAX > 4096 */ 55#else /* ARG_MAX */ 56# define SM_ARG_MAX 4096 57#endif /* ARG_MAX */ 58 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**********************************************************************/ 64 65#define MAXLINE 2048 /* max line length */ 66#define MAXNAME 256 /* max length of a name */ 67#ifndef MAXAUTHINFO 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) */ 77#if _FFR_MAXKEY 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 */ 85#if MILTER 86# define MAXFILTERS 25 /* max # of milter filters */ 87# define MAXFILTERMACROS 50 /* max # of macros per milter cmd */ 88#endif /* MILTER */ 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 */ 95 96#ifndef MAXNOOPCOMMANDS 97# define MAXNOOPCOMMANDS 20 /* max "noise" commands before slowdown */ 98#endif /* ! MAXNOOPCOMMANDS */ 99 100/* 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). 105*/ 106 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) */ 114#ifndef MAXHDRSLEN 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 */ 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#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 */ 136 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 */ 140 141#if SASL 142# ifndef AUTH_MECHANISMS 143# if STARTTLS 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 */ 149#endif /* SASL */ 150 151/* 152** Default database permissions (alias, maps, etc.) 153** Used by sendmail and libsmdb 154*/ 155 156#ifndef DBMMODE 157# define DBMMODE 0640 158#endif /* ! DBMMODE */ 159 160/* 161** Value which means a uid or gid value should not change 162*/ 163 164#ifndef NO_UID 165# define NO_UID -1 166#endif /* ! NO_UID */ 167#ifndef NO_GID 168# define NO_GID -1 169#endif /* ! NO_GID */ 170 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**********************************************************************/ 177 178#ifndef NETINET 179# define NETINET 1 /* include internet support */ 180#endif /* ! NETINET */ 181 182#ifndef NETINET6 183# define NETINET6 0 /* do not include IPv6 support */ 184#endif /* ! NETINET6 */ 185 186#ifndef NETISO 187# define NETISO 0 /* do not include ISO socket support */ 188#endif /* ! NETISO */ 189 190#ifndef NAMED_BIND 191# define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ 192#endif /* ! NAMED_BIND */ 193 194#ifndef XDEBUG 195# define XDEBUG 1 /* enable extended debugging */ 196#endif /* ! XDEBUG */ 197 198#ifndef MATCHGECOS 199# define MATCHGECOS 1 /* match user names from gecos field */ 200#endif /* ! MATCHGECOS */ 201 202#ifndef DSN 203# define DSN 1 /* include delivery status notification code */ 204#endif /* ! DSN */ 205 206#if !defined(USERDB) && (defined(NEWDB) || defined(HESIOD)) 207# define USERDB 1 /* look in user database */ 208#endif /* !defined(USERDB) && (defined(NEWDB) || defined(HESIOD)) */ 209 210#ifndef MIME8TO7 211# define MIME8TO7 1 /* 8->7 bit MIME conversions */ 212#endif /* ! MIME8TO7 */ 213 214#ifndef MIME7TO8 215# define MIME7TO8 1 /* 7->8 bit MIME conversions */ 216#endif /* ! MIME7TO8 */ 217 218#if NAMED_BIND 219# ifndef DNSMAP 220# define DNSMAP 1 /* DNS map type */ 221# endif /* ! DNSMAP */ 222#endif /* NAMED_BIND */ 223 224#ifndef PIPELINING 225# define PIPELINING 1 /* SMTP PIPELINING */ 226#endif /* PIPELINING */ 227 228/********************************************************************** 229** End of site-specific configuration. 230**********************************************************************/ 231 232#include <sm/conf.h> 233 234#endif /* ! CONF_H */ 235