138032Speter/* 2261363Sgshapiro * Copyright (c) 1998-2002 Proofpoint, Inc. and its suppliers. 364565Sgshapiro * All rights reserved. 438032Speter * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. 538032Speter * Copyright (c) 1988, 1993 638032Speter * The Regents of the University of California. All rights reserved. 738032Speter * 838032Speter * By using this file, you agree to the terms and conditions set 938032Speter * forth in the LICENSE file which can be found at the top level of 1038032Speter * the sendmail distribution. 1138032Speter * 1238032Speter * 13266692Sgshapiro * $Id: conf.h,v 8.577 2013-11-22 20:51:55 ca Exp $ 1438032Speter */ 1538032Speter 1638032Speter/* 1738032Speter** CONF.H -- All user-configurable parameters for sendmail 1838032Speter** 1938032Speter** Send updates to sendmail@Sendmail.ORG so they will be 2038032Speter** included in the next release. 2138032Speter*/ 2238032Speter 2364565Sgshapiro#ifndef CONF_H 2464565Sgshapiro#define CONF_H 1 2564565Sgshapiro 2638032Speter#ifdef __GNUC__ 2738032Speterstruct rusage; /* forward declaration to get gcc to shut up in wait.h */ 2864565Sgshapiro#endif /* __GNUC__ */ 2938032Speter 3038032Speter# include <sys/param.h> 3138032Speter# include <sys/types.h> 3238032Speter# include <sys/stat.h> 3364565Sgshapiro# ifndef __QNX__ 3438032Speter/* in QNX this grabs bogus LOCK_* manifests */ 3564565Sgshapiro# include <sys/file.h> 3664565Sgshapiro# endif /* ! __QNX__ */ 3738032Speter# include <sys/wait.h> 3838032Speter# include <limits.h> 3938032Speter# include <fcntl.h> 4038032Speter# include <signal.h> 4138032Speter# include <netdb.h> 4238032Speter# include <pwd.h> 4364565Sgshapiro# include <grp.h> 4438032Speter 4564565Sgshapiro/* make sure TOBUFSIZ isn't larger than system limit for size of exec() args */ 4664565Sgshapiro#ifdef ARG_MAX 4764565Sgshapiro# if ARG_MAX > 4096 4864565Sgshapiro# define SM_ARG_MAX 4096 4964565Sgshapiro# else /* ARG_MAX > 4096 */ 5064565Sgshapiro# define SM_ARG_MAX ARG_MAX 5164565Sgshapiro# endif /* ARG_MAX > 4096 */ 5264565Sgshapiro#else /* ARG_MAX */ 5364565Sgshapiro# define SM_ARG_MAX 4096 5464565Sgshapiro#endif /* ARG_MAX */ 5564565Sgshapiro 5638032Speter/********************************************************************** 5738032Speter** Table sizes, etc.... 5838032Speter** There shouldn't be much need to change these.... 5990795Sgshapiro** If you do, be careful, none should be set anywhere near INT_MAX 6038032Speter**********************************************************************/ 6138032Speter 62157006Sgshapiro#define MAXLINE 2048 /* max line length */ 63168520Sgshapiro#if SASL 64168520Sgshapiro# define MAXINPLINE 12288 /* max input line length (for AUTH) */ 65168520Sgshapiro#else /* SASL */ 66168520Sgshapiro# define MAXINPLINE MAXLINE /* max input line length */ 67168520Sgshapiro#endif /* SASL */ 68157006Sgshapiro#define MAXNAME 256 /* max length of a name */ 69110563Sgshapiro#ifndef MAXAUTHINFO 70157006Sgshapiro# define MAXAUTHINFO 100 /* max length of authinfo token */ 71110563Sgshapiro#endif /* ! MAXAUTHINFO */ 72157006Sgshapiro#define MAXPV 256 /* max # of parms to mailers */ 73157006Sgshapiro#define MAXATOM 1000 /* max atoms per address */ 74157006Sgshapiro#define MAXRWSETS 200 /* max # of sets of rewriting rules */ 75157006Sgshapiro#define MAXPRIORITIES 25 /* max values for Precedence: field */ 76157006Sgshapiro#define MAXMXHOSTS 100 /* max # of MX records for one host */ 77157006Sgshapiro#define SMTPLINELIM 990 /* max SMTP line length */ 78157006Sgshapiro#define MAXUDBKEY 128 /* max size of a database key (udb only) */ 79168520Sgshapiro#define MAXKEY 1024 /* max size of a database key */ 80157006Sgshapiro#define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */ 81157006Sgshapiro#define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */ 82157006Sgshapiro#define MAXMAPSTACK 12 /* max # of stacked or sequenced maps */ 8390795Sgshapiro#if MILTER 84157006Sgshapiro# define MAXFILTERS 25 /* max # of milter filters */ 85157006Sgshapiro# define MAXFILTERMACROS 50 /* max # of macros per milter cmd */ 8690795Sgshapiro#endif /* MILTER */ 87157006Sgshapiro#define MAXSMTPARGS 20 /* max # of ESMTP args for MAIL/RCPT */ 88157006Sgshapiro#define MAXTOCLASS 8 /* max # of message timeout classes */ 89157006Sgshapiro#define MAXRESTOTYPES 3 /* max # of resolver timeout types */ 90157006Sgshapiro#define MAXMIMEARGS 20 /* max args in Content-Type: */ 91157006Sgshapiro#define MAXMIMENESTING 20 /* max MIME multipart nesting */ 92157006Sgshapiro#define QUEUESEGSIZE 1000 /* increment for queue size */ 9390795Sgshapiro 94157006Sgshapiro#ifndef MAXNOOPCOMMANDS 95157006Sgshapiro# define MAXNOOPCOMMANDS 20 /* max "noise" commands before slowdown */ 96157006Sgshapiro#endif /* ! MAXNOOPCOMMANDS */ 97157006Sgshapiro 9890795Sgshapiro/* 9990795Sgshapiro** MAXQFNAME == 2 (size of "qf", "df" prefix) 10090795Sgshapiro** + 8 (base 60 encoded date, time & sequence number) 10190795Sgshapiro** + 10 (base 10 encoded 32 bit process id) 10290795Sgshapiro** + 1 (terminating NUL character). 10390795Sgshapiro*/ 10490795Sgshapiro 10590795Sgshapiro#define MAXQFNAME 21 /* max qf file name length + 1 */ 10664565Sgshapiro#define MACBUFSIZE 4096 /* max expanded macro buffer size */ 10764565Sgshapiro#define TOBUFSIZE SM_ARG_MAX /* max buffer to hold address list */ 10864565Sgshapiro#define MAXSHORTSTR 203 /* max short string length */ 10964565Sgshapiro#define MAXMACNAMELEN 25 /* max macro name length */ 11064565Sgshapiro#define MAXMACROID 0377 /* max macro id number */ 11171348Sgshapiro /* Must match (BITMAPBITS - 1) */ 11264565Sgshapiro#ifndef MAXHDRSLEN 11364565Sgshapiro# define MAXHDRSLEN (32 * 1024) /* max size of message headers */ 11464565Sgshapiro#endif /* ! MAXHDRSLEN */ 115261363Sgshapiro#ifndef MAXDAEMONS 116261363Sgshapiro# define MAXDAEMONS 10 /* max number of ports to listen to */ 117261363Sgshapiro#endif /* MAXDAEMONS */ 11864565Sgshapiro#ifndef MAXINTERFACES 11964565Sgshapiro# define MAXINTERFACES 512 /* number of interfaces to probe */ 12064565Sgshapiro#endif /* MAXINTERFACES */ 12164565Sgshapiro#ifndef MAXSYMLINKS 12264565Sgshapiro# define MAXSYMLINKS 32 /* max number of symlinks in a path */ 12364565Sgshapiro#endif /* ! MAXSYMLINKS */ 12464565Sgshapiro#define MAXLINKPATHLEN (MAXPATHLEN * MAXSYMLINKS) /* max link-expanded file */ 12590795Sgshapiro#define DATA_PROGRESS_TIMEOUT 300 /* how often to check DATA progress */ 12664565Sgshapiro#define ENHSCLEN 10 /* max len of enhanced status code */ 12790795Sgshapiro#define DEFAULT_MAX_RCPT 100 /* max number of RCPTs per envelope */ 128203004Sgshapiro#ifndef MAXQUEUEGROUPS 129203004Sgshapiro# define MAXQUEUEGROUPS 50 /* max # of queue groups */ 13090795Sgshapiro /* must be less than BITMAPBITS for DoQueueRun */ 131203004Sgshapiro#endif /* MAXQUEUEGROUPS */ 132203004Sgshapiro#if MAXQUEUEGROUPS >= BITMAPBITS 133203004Sgshapiro ERROR _MAXQUEUEGROUPS must be less than _BITMAPBITS 134203004Sgshapiro#endif /* MAXQUEUEGROUPS >= BITMAPBITS */ 135203004Sgshapiro 136203004Sgshapiro#ifndef MAXWORKGROUPS 137203004Sgshapiro# define MAXWORKGROUPS 50 /* max # of work groups */ 138203004Sgshapiro#endif /* MAXWORKGROUPS */ 139203004Sgshapiro 14090795Sgshapiro#define MAXFILESYS BITMAPBITS /* max # of queue file systems 14190795Sgshapiro * must be <= BITMAPBITS */ 14290795Sgshapiro#ifndef FILESYS_UPDATE_INTERVAL 14390795Sgshapiro# define FILESYS_UPDATE_INTERVAL 300 /* how often to update FileSys table */ 14490795Sgshapiro#endif /* FILESYS_UPDATE_INTERVAL */ 14538032Speter 14690795Sgshapiro#ifndef SM_DEFAULT_TTL 14790795Sgshapiro# define SM_DEFAULT_TTL 3600 /* default TTL for services that don't have one */ 14890795Sgshapiro#endif /* SM_DEFAULT_TTL */ 14990795Sgshapiro 15064565Sgshapiro#if SASL 15164565Sgshapiro# ifndef AUTH_MECHANISMS 15290795Sgshapiro# if STARTTLS 15364565Sgshapiro# define AUTH_MECHANISMS "EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5" 15490795Sgshapiro# else /* STARTTLS */ 15564565Sgshapiro# define AUTH_MECHANISMS "GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5" 15690795Sgshapiro# endif /* STARTTLS */ 15764565Sgshapiro# endif /* ! AUTH_MECHANISMS */ 15864565Sgshapiro#endif /* SASL */ 15964565Sgshapiro 16098125Sgshapiro/* 16198125Sgshapiro** Default database permissions (alias, maps, etc.) 16298125Sgshapiro** Used by sendmail and libsmdb 16398125Sgshapiro*/ 16498125Sgshapiro 16598125Sgshapiro#ifndef DBMMODE 16698125Sgshapiro# define DBMMODE 0640 16798125Sgshapiro#endif /* ! DBMMODE */ 16898125Sgshapiro 169132946Sgshapiro/* 170132946Sgshapiro** Value which means a uid or gid value should not change 171132946Sgshapiro*/ 17298125Sgshapiro 173132946Sgshapiro#ifndef NO_UID 174132946Sgshapiro# define NO_UID -1 175132946Sgshapiro#endif /* ! NO_UID */ 176132946Sgshapiro#ifndef NO_GID 177132946Sgshapiro# define NO_GID -1 178132946Sgshapiro#endif /* ! NO_GID */ 179132946Sgshapiro 18038032Speter/********************************************************************** 18138032Speter** Compilation options. 18238032Speter** #define these to 1 if they are available; 18338032Speter** #define them to 0 otherwise. 18438032Speter** All can be overridden from Makefile. 18538032Speter**********************************************************************/ 18638032Speter 18764565Sgshapiro#ifndef NETINET 18864565Sgshapiro# define NETINET 1 /* include internet support */ 18964565Sgshapiro#endif /* ! NETINET */ 19038032Speter 19164565Sgshapiro#ifndef NETINET6 19264565Sgshapiro# define NETINET6 0 /* do not include IPv6 support */ 19364565Sgshapiro#endif /* ! NETINET6 */ 19438032Speter 19564565Sgshapiro#ifndef NETISO 19664565Sgshapiro# define NETISO 0 /* do not include ISO socket support */ 19764565Sgshapiro#endif /* ! NETISO */ 19838032Speter 19964565Sgshapiro#ifndef NAMED_BIND 20064565Sgshapiro# define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ 20164565Sgshapiro#endif /* ! NAMED_BIND */ 20238032Speter 20364565Sgshapiro#ifndef XDEBUG 20464565Sgshapiro# define XDEBUG 1 /* enable extended debugging */ 20564565Sgshapiro#endif /* ! XDEBUG */ 20638032Speter 20764565Sgshapiro#ifndef MATCHGECOS 20864565Sgshapiro# define MATCHGECOS 1 /* match user names from gecos field */ 20964565Sgshapiro#endif /* ! MATCHGECOS */ 21038032Speter 21164565Sgshapiro#ifndef DSN 21264565Sgshapiro# define DSN 1 /* include delivery status notification code */ 21364565Sgshapiro#endif /* ! DSN */ 21438032Speter 21564565Sgshapiro#if !defined(USERDB) && (defined(NEWDB) || defined(HESIOD)) 21664565Sgshapiro# define USERDB 1 /* look in user database */ 21764565Sgshapiro#endif /* !defined(USERDB) && (defined(NEWDB) || defined(HESIOD)) */ 21838032Speter 21964565Sgshapiro#ifndef MIME8TO7 22064565Sgshapiro# define MIME8TO7 1 /* 8->7 bit MIME conversions */ 22164565Sgshapiro#endif /* ! MIME8TO7 */ 22238032Speter 22364565Sgshapiro#ifndef MIME7TO8 22464565Sgshapiro# define MIME7TO8 1 /* 7->8 bit MIME conversions */ 22564565Sgshapiro#endif /* ! MIME7TO8 */ 22664565Sgshapiro 22790795Sgshapiro#if NAMED_BIND 22890795Sgshapiro# ifndef DNSMAP 22990795Sgshapiro# define DNSMAP 1 /* DNS map type */ 23090795Sgshapiro# endif /* ! DNSMAP */ 23190795Sgshapiro#endif /* NAMED_BIND */ 23238032Speter 23390795Sgshapiro#ifndef PIPELINING 23490795Sgshapiro# define PIPELINING 1 /* SMTP PIPELINING */ 23590795Sgshapiro#endif /* PIPELINING */ 23638032Speter 23738032Speter/********************************************************************** 23838032Speter** End of site-specific configuration. 23938032Speter**********************************************************************/ 24038032Speter 24190795Sgshapiro#include <sm/conf.h> 24238032Speter 24390795Sgshapiro#endif /* ! CONF_H */ 244