Deleted Added
full compact
conf.c (111826) conf.c (112813)
1/*
2 * Copyright (c) 1998-2003 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 *
1/*
2 * Copyright (c) 1998-2003 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 * $FreeBSD: head/contrib/sendmail/src/conf.c 112813 2003-03-29 19:18:07Z gshapiro $
13 *
12 */
13
14#include <sendmail.h>
15
14 */
15
16#include <sendmail.h>
17
16SM_RCSID("@(#)$Id: conf.c,v 8.972.2.27 2003/01/15 19:17:14 ca Exp $")
18SM_RCSID("@(#)$Id: conf.c,v 8.972.2.35 2003/03/28 05:46:09 ca Exp $")
17
18#include <sendmail/pathnames.h>
19
20# include <sys/ioctl.h>
21# include <sys/param.h>
22
23#include <limits.h>
24#if NETINET || NETINET6

--- 299 unchanged lines hidden (view full) ---

324 MaxRuleRecursion = MAXRULERECURSION;
325 MaxAliasRecursion = 10;
326 MaxMacroRecursion = 10;
327 ColonOkInAddr = true;
328 DontLockReadFiles = true;
329 DontProbeInterfaces = DPI_PROBEALL;
330 DoubleBounceAddr = "postmaster";
331 MaxHeadersLength = MAXHDRSLEN;
19
20#include <sendmail/pathnames.h>
21
22# include <sys/ioctl.h>
23# include <sys/param.h>
24
25#include <limits.h>
26#if NETINET || NETINET6

--- 299 unchanged lines hidden (view full) ---

326 MaxRuleRecursion = MAXRULERECURSION;
327 MaxAliasRecursion = 10;
328 MaxMacroRecursion = 10;
329 ColonOkInAddr = true;
330 DontLockReadFiles = true;
331 DontProbeInterfaces = DPI_PROBEALL;
332 DoubleBounceAddr = "postmaster";
333 MaxHeadersLength = MAXHDRSLEN;
334 MaxMimeHeaderLength = MAXLINE;
335 MaxMimeFieldLength = MaxMimeHeaderLength / 2;
332 MaxForwardEntries = 0;
333 FastSplit = 1;
334#if SASL
335 AuthMechanisms = newstr(AUTH_MECHANISMS);
336 MaxSLBits = INT_MAX;
337#endif /* SASL */
338#if STARTTLS
339 TLS_Srv_Opts = TLS_I_SRV;

--- 2736 unchanged lines hidden (view full) ---

3076 "/usr/bin/posix/sh",
3077# else /* V4FS */
3078 "/bin/rsh", /* restricted Bourne shell */
3079 "/bin/ksh", /* Korn shell */
3080 "/bin/rksh", /* restricted Korn shell */
3081 "/bin/pam",
3082 "/usr/bin/keysh", /* key shell (extended Korn shell) */
3083 "/bin/posix/sh",
336 MaxForwardEntries = 0;
337 FastSplit = 1;
338#if SASL
339 AuthMechanisms = newstr(AUTH_MECHANISMS);
340 MaxSLBits = INT_MAX;
341#endif /* SASL */
342#if STARTTLS
343 TLS_Srv_Opts = TLS_I_SRV;

--- 2736 unchanged lines hidden (view full) ---

3080 "/usr/bin/posix/sh",
3081# else /* V4FS */
3082 "/bin/rsh", /* restricted Bourne shell */
3083 "/bin/ksh", /* Korn shell */
3084 "/bin/rksh", /* restricted Korn shell */
3085 "/bin/pam",
3086 "/usr/bin/keysh", /* key shell (extended Korn shell) */
3087 "/bin/posix/sh",
3084 "/sbin/sh"
3088 "/sbin/sh",
3085# endif /* V4FS */
3086# endif /* __hpux */
3087# if defined(_AIX3) || defined(_AIX4)
3088 "/bin/ksh", /* Korn shell */
3089 "/usr/bin/ksh",
3090 "/bin/tsh", /* trusted shell */
3091 "/usr/bin/tsh",
3092 "/bin/bsh", /* Bourne shell */

--- 2783 unchanged lines hidden (view full) ---

5876
5877/*
5878** FFR compile options.
5879*/
5880
5881char *FFRCompileOptions[] =
5882{
5883#if _FFR_ADAPTIVE_EOL
3089# endif /* V4FS */
3090# endif /* __hpux */
3091# if defined(_AIX3) || defined(_AIX4)
3092 "/bin/ksh", /* Korn shell */
3093 "/usr/bin/ksh",
3094 "/bin/tsh", /* trusted shell */
3095 "/usr/bin/tsh",
3096 "/bin/bsh", /* Bourne shell */

--- 2783 unchanged lines hidden (view full) ---

5880
5881/*
5882** FFR compile options.
5883*/
5884
5885char *FFRCompileOptions[] =
5886{
5887#if _FFR_ADAPTIVE_EOL
5888 /* tries to be smart about \r\n versus \n from broken clients */
5889 /* known to be broken, do not use */
5884 "_FFR_ADAPTIVE_EOL",
5885#endif /* _FFR_ADAPTIVE_EOL */
5886#if _FFR_ALLOW_SASLINFO
5890 "_FFR_ADAPTIVE_EOL",
5891#endif /* _FFR_ADAPTIVE_EOL */
5892#if _FFR_ALLOW_SASLINFO
5893 /* DefaultAuthInfo can be specified by user. */
5894 /* DefaultAuthInfo doesn't really work in 8.12 anymore. */
5887 "_FFR_ALLOW_SASLINFO",
5888#endif /* _FFR_ALLOW_SASLINFO */
5889#if _FFR_ALLOW_S0_ERROR_4XX
5895 "_FFR_ALLOW_SASLINFO",
5896#endif /* _FFR_ALLOW_SASLINFO */
5897#if _FFR_ALLOW_S0_ERROR_4XX
5898 /* Allow for tempfail from S0 (ruleset 0). */
5890 "_FFR_ALLOW_S0_ERROR_4XX",
5891#endif /* _FFR_ALLOW_S0_ERROR_4XX */
5892#if _FFR_BESTMX_BETTER_TRUNCATION
5899 "_FFR_ALLOW_S0_ERROR_4XX",
5900#endif /* _FFR_ALLOW_S0_ERROR_4XX */
5901#if _FFR_BESTMX_BETTER_TRUNCATION
5902 /* Better truncation of list of MX records for dns map. */
5893 "_FFR_BESTMX_BETTER_TRUNCATION",
5894#endif /* _FFR_BESTMX_BETTER_TRUNCATION */
5903 "_FFR_BESTMX_BETTER_TRUNCATION",
5904#endif /* _FFR_BESTMX_BETTER_TRUNCATION */
5905#if _FFR_BLOCK_PROXIES
5906 /*
5907 ** Try to deal with open HTTP proxies that are used to send spam
5908 ** by recognizing some commands from them.
5909 */
5910
5911 "_FFR_BLOCK_PROXIES",
5912#endif /* _FFR_BLOCK_PROXIES */
5895#if _FFR_CACHE_LPC
5913#if _FFR_CACHE_LPC
5914 /* Cache connections to LCP based mailers */
5896/* Christophe Wolfhugel of France Telecom Oleane */
5897 "_FFR_CACHE_LPC",
5898#endif /* _FFR_CACHE_LPC */
5899#if _FFR_CATCH_BROKEN_MTAS
5915/* Christophe Wolfhugel of France Telecom Oleane */
5916 "_FFR_CACHE_LPC",
5917#endif /* _FFR_CACHE_LPC */
5918#if _FFR_CATCH_BROKEN_MTAS
5919 /* Deal with MTAs that send a reply during the DATA phase. */
5900 "_FFR_CATCH_BROKEN_MTAS",
5901#endif /* _FFR_CATCH_BROKEN_MTAS */
5902#if _FFR_CATCH_LONG_STRINGS
5920 "_FFR_CATCH_BROKEN_MTAS",
5921#endif /* _FFR_CATCH_BROKEN_MTAS */
5922#if _FFR_CATCH_LONG_STRINGS
5923 /* Report long address strings instead of silently ignoring them. */
5903 "_FFR_CATCH_LONG_STRINGS",
5904#endif /* _FFR_CATCH_LONG_STRINGS */
5905#if _FFR_CHECK_EOM
5924 "_FFR_CATCH_LONG_STRINGS",
5925#endif /* _FFR_CATCH_LONG_STRINGS */
5926#if _FFR_CHECK_EOM
5927 /* Enable check_eom ruleset */
5906 "_FFR_CHECK_EOM",
5907#endif /* _FFR_CHECK_EOM */
5908#if _FFR_CHK_QUEUE
5928 "_FFR_CHECK_EOM",
5929#endif /* _FFR_CHECK_EOM */
5930#if _FFR_CHK_QUEUE
5931 /* Stricter checks about queue directory permissions. */
5909 "_FFR_CHK_QUEUE",
5910#endif /* _FFR_CHK_QUEUE */
5911#if _FFR_CONTROL_MSTAT
5932 "_FFR_CHK_QUEUE",
5933#endif /* _FFR_CHK_QUEUE */
5934#if _FFR_CONTROL_MSTAT
5935 /* Extended daemon status. */
5912 "_FFR_CONTROL_MSTAT",
5913#endif /* _FFR_CONTROL_MSTAT */
5914#if _FFR_DAEMON_NETUNIX
5936 "_FFR_CONTROL_MSTAT",
5937#endif /* _FFR_CONTROL_MSTAT */
5938#if _FFR_DAEMON_NETUNIX
5939 /* Allow local (not just TCP) socket connection to server. */
5915 "_FFR_DAEMON_NETUNIX",
5916#endif /* _FFR_DAEMON_NETUNIX */
5917#if _FFR_DEAL_WITH_ERROR_SSL
5940 "_FFR_DAEMON_NETUNIX",
5941#endif /* _FFR_DAEMON_NETUNIX */
5942#if _FFR_DEAL_WITH_ERROR_SSL
5943 /* Deal with SSL errors by recognizing them as EOF. */
5918 "_FFR_DEAL_WITH_ERROR_SSL",
5919#endif /* _FFR_DEAL_WITH_ERROR_SSL */
5920#if _FFR_DEPRECATE_MAILER_FLAG_I
5944 "_FFR_DEAL_WITH_ERROR_SSL",
5945#endif /* _FFR_DEAL_WITH_ERROR_SSL */
5946#if _FFR_DEPRECATE_MAILER_FLAG_I
5947 /* What it says :-) */
5921 "_FFR_DEPRECATE_MAILER_FLAG_I",
5922#endif /* _FFR_DEPRECATE_MAILER_FLAG_I */
5923#if _FFR_DIGUNIX_SAFECHOWN
5948 "_FFR_DEPRECATE_MAILER_FLAG_I",
5949#endif /* _FFR_DEPRECATE_MAILER_FLAG_I */
5950#if _FFR_DIGUNIX_SAFECHOWN
5951 /* Properly set SAFECHOWN (include/sm/conf.h) for Digital UNIX */
5924/* Problem noted by Anne Bennett of Concordia University */
5925 "_FFR_DIGUNIX_SAFECHOWN",
5926#endif /* _FFR_DIGUNIX_SAFECHOWN */
5927#if _FFR_DNSMAP_ALIASABLE
5952/* Problem noted by Anne Bennett of Concordia University */
5953 "_FFR_DIGUNIX_SAFECHOWN",
5954#endif /* _FFR_DIGUNIX_SAFECHOWN */
5955#if _FFR_DNSMAP_ALIASABLE
5956 /* Allow dns map type to be used for aliases. */
5928/* Don Lewis of TDK */
5929 "_FFR_DNSMAP_ALIASABLE",
5930#endif /* _FFR_DNSMAP_ALIASABLE */
5931#if _FFR_DNSMAP_BASE
5957/* Don Lewis of TDK */
5958 "_FFR_DNSMAP_ALIASABLE",
5959#endif /* _FFR_DNSMAP_ALIASABLE */
5960#if _FFR_DNSMAP_BASE
5961 /* Specify a "base" domain for DNS lookups. */
5932 "_FFR_DNSMAP_BASE",
5933#endif /* _FFR_DNSMAP_BASE */
5934#if _FFR_DNSMAP_MULTI
5962 "_FFR_DNSMAP_BASE",
5963#endif /* _FFR_DNSMAP_BASE */
5964#if _FFR_DNSMAP_MULTI
5965 /* Allow multiple return values for DNS map. */
5935 "_FFR_DNSMAP_MULTI",
5936# if _FFR_DNSMAP_MULTILIMIT
5966 "_FFR_DNSMAP_MULTI",
5967# if _FFR_DNSMAP_MULTILIMIT
5968 /* Limit number of return values for DNS map. */
5937 "_FFR_DNSMAP_MULTILIMIT",
5938# endif /* _FFR_DNSMAP_MULTILIMIT */
5939#endif /* _FFR_DNSMAP_MULTI */
5940#if _FFR_DONTLOCKFILESFORREAD_OPTION
5969 "_FFR_DNSMAP_MULTILIMIT",
5970# endif /* _FFR_DNSMAP_MULTILIMIT */
5971#endif /* _FFR_DNSMAP_MULTI */
5972#if _FFR_DONTLOCKFILESFORREAD_OPTION
5973 /* Enable DontLockFilesForRead option. */
5941 "_FFR_DONTLOCKFILESFORREAD_OPTION",
5942#endif /* _FFR_DONTLOCKFILESFORREAD_OPTION */
5974 "_FFR_DONTLOCKFILESFORREAD_OPTION",
5975#endif /* _FFR_DONTLOCKFILESFORREAD_OPTION */
5943# if _FFR_DONT_STOP_LOOKING
5976#if _FFR_DONT_STOP_LOOKING
5977 /* Continue with DNS lookups on ECONNREFUSED and TRY_AGAIN. */
5944/* Noted by Neil Rickert of Northern Illinois University */
5945 "_FFR_DONT_STOP_LOOKING",
5978/* Noted by Neil Rickert of Northern Illinois University */
5979 "_FFR_DONT_STOP_LOOKING",
5946# endif /* _FFR_DONT_STOP_LOOKING */
5980#endif /* _FFR_DONT_STOP_LOOKING */
5947#if _FFR_DOTTED_USERNAMES
5981#if _FFR_DOTTED_USERNAMES
5982 /* Allow usernames with '.' */
5948 "_FFR_DOTTED_USERNAMES",
5949#endif /* _FFR_DOTTED_USERNAMES */
5950#if _FFR_DROP_TRUSTUSER_WARNING
5983 "_FFR_DOTTED_USERNAMES",
5984#endif /* _FFR_DOTTED_USERNAMES */
5985#if _FFR_DROP_TRUSTUSER_WARNING
5986 /*
5987 ** Don't issue this warning:
5988 ** "readcf: option TrustedUser may cause problems on systems
5989 ** which do not support fchown() if UseMSP is not set.
5990 */
5991
5951 "_FFR_DROP_TRUSTUSER_WARNING",
5952#endif /* _FFR_DROP_TRUSTUSER_WARNING */
5953#if _FFR_FIX_DASHT
5992 "_FFR_DROP_TRUSTUSER_WARNING",
5993#endif /* _FFR_DROP_TRUSTUSER_WARNING */
5994#if _FFR_FIX_DASHT
5995 /*
5996 ** If using -t, force not sending to argv recipients, even
5997 ** if they are mentioned in the headers.
5998 */
5999
5954 "_FFR_FIX_DASHT",
5955#endif /* _FFR_FIX_DASHT */
5956#if _FFR_FORWARD_SYSERR
6000 "_FFR_FIX_DASHT",
6001#endif /* _FFR_FIX_DASHT */
6002#if _FFR_FORWARD_SYSERR
6003 /* Cause a "syserr" if forward file isn't "safe". */
5957 "_FFR_FORWARD_SYSERR",
5958#endif /* _FFR_FORWARD_SYSERR */
5959#if _FFR_GEN_ORCPT
6004 "_FFR_FORWARD_SYSERR",
6005#endif /* _FFR_FORWARD_SYSERR */
6006#if _FFR_GEN_ORCPT
6007 /* Generate a ORCPT DSN arg if not already provided */
5960 "_FFR_GEN_ORCPT",
5961#endif /* _FFR_GEN_ORCPT */
5962#if _FFR_GROUPREADABLEAUTHINFOFILE
6008 "_FFR_GEN_ORCPT",
6009#endif /* _FFR_GEN_ORCPT */
6010#if _FFR_GROUPREADABLEAUTHINFOFILE
6011 /* Allow group readable DefaultAuthInfo file. */
5963 "_FFR_GROUPREADABLEAUTHINFOFILE",
5964#endif /* _FFR_GROUPREADABLEAUTHINFOFILE */
5965#if _FFR_HANDLE_ISO8859_GECOS
6012 "_FFR_GROUPREADABLEAUTHINFOFILE",
6013#endif /* _FFR_GROUPREADABLEAUTHINFOFILE */
6014#if _FFR_HANDLE_ISO8859_GECOS
6015 /*
6016 ** Allow ISO 8859 characters in GECOS field: replace them
6017 ** ith ASCII "equivalent".
6018 */
6019
5966/* Peter Eriksson of Linkopings universitet */
5967 "_FFR_HANDLE_ISO8859_GECOS",
5968#endif /* _FFR_HANDLE_ISO8859_GECOS */
5969#if _FFR_HDR_TYPE
6020/* Peter Eriksson of Linkopings universitet */
6021 "_FFR_HANDLE_ISO8859_GECOS",
6022#endif /* _FFR_HANDLE_ISO8859_GECOS */
6023#if _FFR_HDR_TYPE
6024 /* Set 'h' in {addr_type} for headers. */
5970 "_FFR_HDR_TYPE",
5971#endif /* _FFR_HDR_TYPE */
5972#if _FFR_HPUX_NSSWITCH
6025 "_FFR_HDR_TYPE",
6026#endif /* _FFR_HDR_TYPE */
6027#if _FFR_HPUX_NSSWITCH
6028 /* Use nsswitch on HP-UX */
5973 "_FFR_HPUX_NSSWITCH",
5974#endif /* _FFR_HPUX_NSSWITCH */
5975#if _FFR_IGNORE_EXT_ON_HELO
6029 "_FFR_HPUX_NSSWITCH",
6030#endif /* _FFR_HPUX_NSSWITCH */
6031#if _FFR_IGNORE_EXT_ON_HELO
6032 /* Ignore extensions offered in response to HELO */
5976 "_FFR_IGNORE_EXT_ON_HELO",
5977#endif /* _FFR_IGNORE_EXT_ON_HELO */
5978#if _FFR_LDAP_RECURSION
6033 "_FFR_IGNORE_EXT_ON_HELO",
6034#endif /* _FFR_IGNORE_EXT_ON_HELO */
6035#if _FFR_LDAP_RECURSION
6036 /* Support LDAP recursion in LDAP responses */
5979/* Andrew Baucom */
5980 "_FFR_LDAP_RECURSION",
5981#endif /* _FFR_LDAP_RECURSION */
5982#if _FFR_LDAP_SETVERSION
6037/* Andrew Baucom */
6038 "_FFR_LDAP_RECURSION",
6039#endif /* _FFR_LDAP_RECURSION */
6040#if _FFR_LDAP_SETVERSION
6041 /* New LDAP map option for setting LDAP protocol version */
5983 "_FFR_LDAP_SETVERSION",
5984#endif /* _FFR_LDAP_SETVERSION */
5985#if _FFR_LDAP_URI
6042 "_FFR_LDAP_SETVERSION",
6043#endif /* _FFR_LDAP_SETVERSION */
6044#if _FFR_LDAP_URI
6045 /* Support LDAP URI form of specifying host/port (and allows ldaps) */
5986 "_FFR_LDAP_URI",
5987#endif /* _FFR_LDAP_URI */
5988#if _FFR_MAX_FORWARD_ENTRIES
6046 "_FFR_LDAP_URI",
6047#endif /* _FFR_LDAP_URI */
6048#if _FFR_MAX_FORWARD_ENTRIES
6049 /* Try to limit number of .forward entries */
6050 /* (doesn't work) */
5989/* Randall S. Winchester of the University of Maryland */
5990 "_FFR_MAX_FORWARD_ENTRIES",
5991#endif /* _FFR_MAX_FORWARD_ENTRIES */
5992#if MILTER
5993# if _FFR_MILTER_421
6051/* Randall S. Winchester of the University of Maryland */
6052 "_FFR_MAX_FORWARD_ENTRIES",
6053#endif /* _FFR_MAX_FORWARD_ENTRIES */
6054#if MILTER
6055# if _FFR_MILTER_421
6056 /* If a filter returns 421, close the SMTP connection */
5994 "_FFR_MILTER_421",
5995# endif /* _FFR_MILTER_421 */
5996# if _FFR_MILTER_PERDAEMON
6057 "_FFR_MILTER_421",
6058# endif /* _FFR_MILTER_421 */
6059# if _FFR_MILTER_PERDAEMON
6060 /* Per DaemonPortOptions InputMailFilter lists */
5997 "_FFR_MILTER_PERDAEMON",
5998# endif /* _FFR_MILTER_PERDAEMON */
5999#endif /* MILTER */
6000#if _FFR_NODELAYDSN_ON_HOLD
6061 "_FFR_MILTER_PERDAEMON",
6062# endif /* _FFR_MILTER_PERDAEMON */
6063#endif /* MILTER */
6064#if _FFR_NODELAYDSN_ON_HOLD
6065 /* Do not issue a DELAY DSN for mailers that use the hold flag. */
6001/* Steven Pitzl */
6002 "_FFR_NODELAYDSN_ON_HOLD",
6003#endif /* _FFR_NODELAYDSN_ON_HOLD */
6004#if _FFR_NO_PIPE
6066/* Steven Pitzl */
6067 "_FFR_NODELAYDSN_ON_HOLD",
6068#endif /* _FFR_NODELAYDSN_ON_HOLD */
6069#if _FFR_NO_PIPE
6070 /* Disable PIPELINING, delay client if used. */
6005 "_FFR_NO_PIPE",
6006#endif /* _FFR_NO_PIPE */
6007#if _FFR_QUARANTINE
6071 "_FFR_NO_PIPE",
6072#endif /* _FFR_NO_PIPE */
6073#if _FFR_QUARANTINE
6074 /* Quarantine items in the queue */
6008 "_FFR_QUARANTINE",
6009#endif /* _FFR_QUARANTINE */
6010#if _FFR_QUEUEDELAY
6075 "_FFR_QUARANTINE",
6076#endif /* _FFR_QUARANTINE */
6077#if _FFR_QUEUEDELAY
6078 /* Exponential queue delay; disabled in 8.13 since it isn't used. */
6011 "_FFR_QUEUEDELAY",
6012#endif /* _FFR_QUEUEDELAY */
6013#if _FFR_QUEUE_GROUP_SORTORDER
6079 "_FFR_QUEUEDELAY",
6080#endif /* _FFR_QUEUEDELAY */
6081#if _FFR_QUEUE_GROUP_SORTORDER
6082 /* Allow QueueSortOrder per queue group. */
6014/* XXX: Still need to actually use qgrp->qg_sortorder */
6015 "_FFR_QUEUE_GROUP_SORTORDER",
6016#endif /* _FFR_QUEUE_GROUP_SORTORDER */
6017#if _FFR_QUEUE_MACRO
6083/* XXX: Still need to actually use qgrp->qg_sortorder */
6084 "_FFR_QUEUE_GROUP_SORTORDER",
6085#endif /* _FFR_QUEUE_GROUP_SORTORDER */
6086#if _FFR_QUEUE_MACRO
6087 /* Define {queue} macro. */
6018 "_FFR_QUEUE_MACRO",
6019#endif /* _FFR_QUEUE_MACRO */
6088 "_FFR_QUEUE_MACRO",
6089#endif /* _FFR_QUEUE_MACRO */
6090#if _FFR_QUEUERETURN_DSN
6091 /*
6092 ** Provide an option for different Timeout.queue{warn,return} for
6093 ** DSN messages. These days, queues are filled with bounces for
6094 ** spam that will never make it to the sender and therefore slow
6095 ** down queue runs until they timeout.
6096 */
6097
6098 "_FFR_QUEUERETURN_DSN",
6099#endif /* _FFR_QUEUERETURN_DSN */
6020#if _FFR_QUEUE_RUN_PARANOIA
6100#if _FFR_QUEUE_RUN_PARANOIA
6101 /* Additional checks when doing queue runs. */
6021 "_FFR_QUEUE_RUN_PARANOIA",
6022#endif /* _FFR_QUEUE_RUN_PARANOIA */
6023#if _FFR_QUEUE_SCHED_DBG
6102 "_FFR_QUEUE_RUN_PARANOIA",
6103#endif /* _FFR_QUEUE_RUN_PARANOIA */
6104#if _FFR_QUEUE_SCHED_DBG
6105 /* Debug output for the queue scheduler. */
6024 "_FFR_QUEUE_SCHED_DBG",
6025#endif /* _FFR_QUEUE_SCHED_DBG */
6026#if _FFR_REDIRECTEMPTY
6106 "_FFR_QUEUE_SCHED_DBG",
6107#endif /* _FFR_QUEUE_SCHED_DBG */
6108#if _FFR_REDIRECTEMPTY
6109 /*
6110 ** envelope <> can't be sent to mailing lists, only owner-
6111 ** send spam of this type to owner- of the list
6112 ** ---- to stop spam from going to mailing lists.
6113 */
6114
6027 "_FFR_REDIRECTEMPTY",
6028#endif /* _FFR_REDIRECTEMPTY */
6029#if _FFR_REJECT_LOG
6115 "_FFR_REDIRECTEMPTY",
6116#endif /* _FFR_REDIRECTEMPTY */
6117#if _FFR_REJECT_LOG
6118 /* Log when we start/stop rejecting connections due to load, etc */
6030 "_FFR_REJECT_LOG",
6031#endif /* _FFR_REJECT_LOG */
6032#if _FFR_REQ_DIR_FSYNC_OPT
6119 "_FFR_REJECT_LOG",
6120#endif /* _FFR_REJECT_LOG */
6121#if _FFR_REQ_DIR_FSYNC_OPT
6122 /* Add cf option to fsync() directories */
6033 "_FFR_REQ_DIR_FSYNC_OPT",
6034#endif /* _FFR_REQ_DIR_FSYNC_OPT */
6035#if _FFR_RESET_MACRO_GLOBALS
6123 "_FFR_REQ_DIR_FSYNC_OPT",
6124#endif /* _FFR_REQ_DIR_FSYNC_OPT */
6125#if _FFR_RESET_MACRO_GLOBALS
6126 /* Allow macro 'j' to be set dynamically via rulesets. */
6036 "_FFR_RESET_MACRO_GLOBALS",
6037#endif /* _FFR_RESET_MACRO_GLOBALS */
6038#if _FFR_RESPOND_ALL
6127 "_FFR_RESET_MACRO_GLOBALS",
6128#endif /* _FFR_RESET_MACRO_GLOBALS */
6129#if _FFR_RESPOND_ALL
6039 /* in vacation */
6130 /* in vacation: respond to every message, not just once per interval */
6040 "_FFR_RESPOND_ALL",
6041#endif /* _FFR_RESPOND_ALL */
6042#if _FFR_RHS
6131 "_FFR_RESPOND_ALL",
6132#endif /* _FFR_RESPOND_ALL */
6133#if _FFR_RHS
6134 /* Random shuffle for queue sorting. */
6043 "_FFR_RHS",
6044#endif /* _FFR_RHS */
6045#if _FFR_SASL_OPT_M
6135 "_FFR_RHS",
6136#endif /* _FFR_RHS */
6137#if _FFR_SASL_OPT_M
6138 /* Support SASL's SASL_SEC_MUTUAL_AUTH option */
6046 "_FFR_SASL_OPT_M",
6047#endif /* _FFR_SASL_OPT_M */
6048#if _FFR_SELECT_SHM
6139 "_FFR_SASL_OPT_M",
6140#endif /* _FFR_SASL_OPT_M */
6141#if _FFR_SELECT_SHM
6142 /* Auto-select of shared memory key */
6049 "_FFR_SELECT_SHM",
6050#endif /* _FFR_SELECT_SHM */
6051#if _FFR_SHM_STATUS
6143 "_FFR_SELECT_SHM",
6144#endif /* _FFR_SELECT_SHM */
6145#if _FFR_SHM_STATUS
6146 /* Donated code (unused). */
6052 "_FFR_SHM_STATUS",
6053#endif /* _FFR_SHM_STATUS */
6054#if _FFR_SMFI_OPENSOCKET
6147 "_FFR_SHM_STATUS",
6148#endif /* _FFR_SHM_STATUS */
6149#if _FFR_SMFI_OPENSOCKET
6150 /* libmilter: smfi_opensocket() to force the socket open early */
6055 "_FFR_SMFI_OPENSOCKET",
6056#endif /* _FFR_SMFI_OPENSOCKET */
6057#if _FFR_SMTP_SSL
6151 "_FFR_SMFI_OPENSOCKET",
6152#endif /* _FFR_SMFI_OPENSOCKET */
6153#if _FFR_SMTP_SSL
6154 /* Support for smtps (SMTP over SSL) */
6058 "_FFR_SMTP_SSL",
6059#endif /* _FFR_SMTP_SSL */
6060#if _FFR_SOFT_BOUNCE
6155 "_FFR_SMTP_SSL",
6156#endif /* _FFR_SMTP_SSL */
6157#if _FFR_SOFT_BOUNCE
6158 /* Turn all errors into temporary errors. */
6061 "_FFR_SOFT_BOUNCE",
6062#endif /* _FFR_SOFT_BOUNCE */
6063#if _FFR_SPT_ALIGN
6159 "_FFR_SOFT_BOUNCE",
6160#endif /* _FFR_SOFT_BOUNCE */
6161#if _FFR_SPT_ALIGN
6162 /*
6163 ** It looks like the Compaq Tru64 5.1A now aligns argv and envp to 64
6164 ** bit alignment, so unless each piece of argv and envp is a multiple
6165 ** of 8 bytes (including terminating NULL), initsetproctitle() won't
6166 ** use any of the space beyond argv[0]. Be sure to set SPT_ALIGN_SIZE
6167 ** if you use this FFR.
6168 */
6169
6064/* Chris Adams of HiWAAY Informations Services */
6065 "_FFR_SPT_ALIGN",
6066#endif /* _FFR_SPT_ALIGN */
6067#if _FFR_STRIPBACKSL
6170/* Chris Adams of HiWAAY Informations Services */
6171 "_FFR_SPT_ALIGN",
6172#endif /* _FFR_SPT_ALIGN */
6173#if _FFR_STRIPBACKSL
6174 /*
6175 ** Strip backslash from addresses (so sender doesn't
6176 ** decide to ignore forward)
6177 */
6178
6068 "_FFR_STRIPBACKSL",
6069#endif /* _FFR_STRIPBACKSL */
6070#if _FFR_TIMERS
6179 "_FFR_STRIPBACKSL",
6180#endif /* _FFR_STRIPBACKSL */
6181#if _FFR_TIMERS
6182 /* Donated code (unused). */
6071 "_FFR_TIMERS",
6072#endif /* _FFR_TIMERS */
6073#if _FFR_TLS_1
6183 "_FFR_TIMERS",
6184#endif /* _FFR_TIMERS */
6185#if _FFR_TLS_1
6186 /* More STARTTLS options, e.g., secondary certs. */
6074 "_FFR_TLS_1",
6075#endif /* _FFR_TLS_1 */
6076#if _FFR_TRUSTED_QF
6187 "_FFR_TLS_1",
6188#endif /* _FFR_TLS_1 */
6189#if _FFR_TRUSTED_QF
6190 /*
6191 ** If we don't own the file mark it as unsafe.
6192 ** However, allow TrustedUser to own it as well
6193 ** in case TrustedUser manipulates the queue.
6194 */
6195
6077 "_FFR_TRUSTED_QF",
6078#endif /* _FFR_TRUSTED_QF */
6079#if _FFR_USE_SETLOGIN
6196 "_FFR_TRUSTED_QF",
6197#endif /* _FFR_TRUSTED_QF */
6198#if _FFR_USE_SETLOGIN
6199 /* Use setlogin() */
6080/* Peter Philipp */
6081 "_FFR_USE_SETLOGIN",
6082#endif /* _FFR_USE_SETLOGIN */
6083 NULL
6084};
6085
6200/* Peter Philipp */
6201 "_FFR_USE_SETLOGIN",
6202#endif /* _FFR_USE_SETLOGIN */
6203 NULL
6204};
6205