summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE4
-rw-r--r--PGPKEYS298
-rw-r--r--RELEASE_NOTES51
-rw-r--r--cf/README8
-rw-r--r--cf/cf/generic-bsd4.4.cf10
-rw-r--r--cf/cf/generic-hpux10.cf10
-rw-r--r--cf/cf/generic-hpux9.cf10
-rw-r--r--cf/cf/generic-linux.cf10
-rw-r--r--cf/cf/generic-mpeix.cf10
-rw-r--r--cf/cf/generic-nextstep3.3.cf10
-rw-r--r--cf/cf/generic-osf1.cf10
-rw-r--r--cf/cf/generic-solaris.cf10
-rw-r--r--cf/cf/generic-sunos4.1.cf10
-rw-r--r--cf/cf/generic-ultrix4.cf10
-rw-r--r--cf/cf/submit.cf10
-rw-r--r--cf/feature/ldap_routing.m42
-rw-r--r--cf/m4/proto.m47
-rw-r--r--cf/m4/version.m46
-rw-r--r--devtools/M4/UNIX/defines.m48
-rw-r--r--devtools/M4/UNIX/links.m46
-rw-r--r--devtools/M4/UNIX/manpage.m410
-rw-r--r--devtools/M4/list.m44
-rw-r--r--devtools/M4/switch.m44
-rw-r--r--devtools/OS/Darwin.11.x25
-rw-r--r--devtools/OS/HP-UX.11.x4
-rw-r--r--devtools/OS/IRIX.6.510
-rw-r--r--devtools/OS/IRIX.6.x10
-rw-r--r--devtools/OS/IRIX64.6.010
-rw-r--r--devtools/OS/IRIX64.6.110
-rw-r--r--devtools/OS/IRIX64.6.510
-rw-r--r--devtools/OS/IRIX64.6.x10
-rw-r--r--devtools/OS/SunOS.5.1226
-rw-r--r--devtools/OS/UNICOS-mp10
-rw-r--r--devtools/README10
-rw-r--r--doc/op/op.me12
-rw-r--r--doc/op/op.ps781
-rw-r--r--include/libmilter/mfapi.h7
-rw-r--r--include/sm/clock.h4
-rw-r--r--include/sm/tailq.h6
-rw-r--r--libmilter/Makefile.m42
-rw-r--r--libmilter/docs/api.html3
-rw-r--r--libmilter/docs/smfi_setsymlist.html10
-rw-r--r--libmilter/docs/smfi_settimeout.html17
-rw-r--r--libmilter/worker.c37
-rw-r--r--src/Makefile.m42
-rw-r--r--src/TRACEFLAGS15
-rw-r--r--src/collect.c5
-rw-r--r--src/conf.c30
-rw-r--r--src/daemon.c5
-rw-r--r--src/deliver.c19
-rw-r--r--src/headers.c6
-rw-r--r--src/main.c8
-rw-r--r--src/map.c14
-rw-r--r--src/milter.c224
-rw-r--r--src/parseaddr.c3
-rw-r--r--src/queue.c25
-rw-r--r--src/sasl.c24
-rw-r--r--src/savemail.c34
-rw-r--r--src/sendmail.h28
-rw-r--r--src/srvrsmtp.c22
-rw-r--r--src/stab.c8
-rw-r--r--src/util.c17
-rw-r--r--src/version.c6
63 files changed, 1249 insertions, 778 deletions
diff --git a/LICENSE b/LICENSE
index a0ad12472c4a..21e83e57f9d2 100644
--- a/LICENSE
+++ b/LICENSE
@@ -35,7 +35,7 @@ each of the following conditions is met:
forth as paragraph 6 below, in the documentation and/or other materials
provided with the distribution. For the purposes of binary distribution
the "Copyright Notice" refers to the following language:
- "Copyright (c) 1998-2010 Sendmail, Inc. All rights reserved."
+ "Copyright (c) 1998-2012 Sendmail, Inc. All rights reserved."
4. Neither the name of Sendmail, Inc. nor the University of California nor
names of their contributors may be used to endorse or promote
@@ -78,4 +78,4 @@ each of the following conditions is met:
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-$Revision: 8.17 $, Last updated $Date: 2010/12/03 01:10:00 $, Document 139848.1
+$Revision: 8.18 $, Last updated $Date: 2012/05/15 21:49:03 $, Document 139848.1
diff --git a/PGPKEYS b/PGPKEYS
index fd6daf86ce17..10bd809537a9 100644
--- a/PGPKEYS
+++ b/PGPKEYS
@@ -142,7 +142,149 @@ gpExpdV7qPrw9k01j5rod5PjZlG8zV0=
-----END PGP PUBLIC KEY BLOCK-----
Type Bits KeyID Created Expires Algorithm Use
-pub 2048 A97884B0 2011-01-04 ------- RSA Sign & Encrypt
+pub 2048 CEEEF43B 2011-12-14 ------- RSA Sign & Encrypt
+fingerprint: CA7A 8F39 A241 9FFF B0A9 AB27 8E5A E9FB CEEE F43B
+uid Sendmail Signing Key/2012 <sendmail@Sendmail.ORG>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.9 (OpenBSD)
+
+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
+=qHzF
+-----END PGP PUBLIC KEY BLOCK-----
+
+Type Bits KeyID Created Expires Algorithm Use
+pub 2048 A97884B0 2011-01-04 ------- RSA Sign & Encrypt
fingerprint: 5872 6218 A913 400D E660 3601 39A4 C77D A978 84B0
uid Sendmail Signing Key/2011 <sendmail@Sendmail.ORG>
@@ -251,7 +393,7 @@ KH6d5q94eHcPD56A4cYD275DIZzAYqRpwzmB9O845HrHAPmQ
-----END PGP PUBLIC KEY BLOCK-----
Type Bits KeyID Created Expires Algorithm Use
-pub 2048 85410ABE 2010-02-19 ------- RSA Sign
+pub 2048 85410ABE 2010-02-19 ------- RSA Sign
fingerprint: B175 9644 5303 5DCE DD7B E919 604D FBF2 8541 0ABE
uid Sendmail Signing Key/2010 <sendmail@Sendmail.ORG>
@@ -1453,13 +1595,79 @@ aBteGdu18ACeNXYmxUhQN/ogZuSaBhd/51aBD8SIRgQQEQIABgUCP9X7SwAKCRCk
-----END PGP PUBLIC KEY BLOCK-----
Type Bits KeyID Created Expires Algorithm Use
+pub 2048 0x0C8B8333 2011-12-14 ---------- RSA Sign & Encrypt
+f20 Fingerprint20 = B080 979F 4D04 3E19 D05A 369C 629E F8EE 0C8B 8333
+sub 2048 0x6763ED11 2011-12-14 ---------- RSA
+uid Sendmail, Inc. Security Officer <security-officer@sendmail.com>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.11 (Darwin)
+
+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
+G09zJuZGoDdC9KhhogEVj4Ow+ydV
+=qF87
+-----END PGP PUBLIC KEY BLOCK-----
+
+Type Bits KeyID Created Expires Algorithm Use
pub 1024 0xA0F8AA0C 2006-03-17 ---------- DSA Sign & Encrypt
f20 Fingerprint20 = 770E 4AC8 8A97 B69E 6E75 0605 1043 2518 A0F8 AA0C
sub 2048 0x6E613854 2006-03-17 ---------- Diffie-Hellman
-uid Sendmail, Inc. Security Officer <security-officer@sendmail.com>
+uid Sendmail, Inc. Security Officer <security-officer@sendmail.com> [REVOKED]
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.2.4 (Darwin)
+Version: GnuPG v1.4.11 (Darwin)
mQGiBEQbQzgRBAC7QmIW2r0oJ9Ixk1ewPxfwN1CU15k2ORBzRVIcO1UcLm6I5t3Z
Gorbj22J8xNyY67yQ3pi5O+pffl5LujEKTco3D3sHhHnpz8vIaBiLyVUG3dCHZwU
@@ -1469,42 +1677,50 @@ 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
-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
-3plWjAkK4jGDVnkcVv2eMGfTP20=
-=Ylc5
+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
+Z9M/bQ==
+=nJIt
-----END PGP PUBLIC KEY BLOCK-----
Type Bits KeyID Created Expires Algorithm Use
@@ -2082,4 +2298,4 @@ DnF3FZZEzV7oqPwC2jzv/1dD6GFhtgy0cnyoPGUJCyc=
=nES8
-----END PGP PUBLIC KEY BLOCK-----
-$Revision: 8.36 $, Last updated $Date: 2011/01/28 21:17:54 $
+$Revision: 8.40 $, Last updated $Date: 2012/01/09 04:44:59 $
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index f96f8cfb069d..1ded3922674e 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -1,11 +1,60 @@
SENDMAIL RELEASE NOTES
- $Id: RELEASE_NOTES,v 8.1991 2011/05/15 04:28:16 ca Exp $
+ $Id: RELEASE_NOTES,v 8.2011 2012/12/21 18:42:16 ca Exp $
This listing shows the version of the sendmail binary, the version
of the sendmail configuration files, the date of release, and a
summary of the changes in that release.
+8.14.6/8.14.6 2012/12/23
+ Fix a regression introduced in 8.14.5: if a server offers
+ two AUTH lines, the MTA would not read them after
+ STARTTLS has been used and hence SMTP AUTH for
+ the client side would fail. Problem noted by Lena.
+ Do not cache hostnames internally in a non case sensitive way
+ as that may cause addresses to change from lower case
+ to upper case or vice versa. These header modifications
+ can cause problems with milters that rely on receiving
+ headers in the same way as they are being sent out such
+ as a DKIM signing milter.
+ If MaxQueueChildren is set then it was possible that new queue
+ runners could not be started anymore because an
+ internal counter was subject to a race condition.
+ If a milter decreases the timeout it waits for a communication
+ with the MTA, the MTA might experience a write() timeout.
+ In some situations, the resulting error might have been
+ ignored. Problem noted by Werner Wiethege.
+ Note: decreasing the communication timeout in a milter
+ should not be done without considering the potential
+ problems.
+ smfi_setsymlist() now properly sets the list of macros for
+ the milter which invoked it, instead of a global
+ list for all milters. Problem reported by
+ David Shrimpton of the University of Queensland.
+ If Timeout.resolver.retrans is set to a value larger than 20,
+ then resolver.retry was temporarily set to 0 for
+ gethostbyaddr() lookups. Now it is set to 1 instead.
+ Patch from Peter.
+ If sendmail could not lock the statistics file due to a system
+ error, and sendmail later sends a DSN for a mail that
+ triggered such an error, then sendmail tried to access
+ memory that was freed before (causing a crash on some
+ systems). Problem reported by Ryan Stone.
+ Do not log negative values for size= nor pri= to avoid confusing
+ log parsers, instead limit the values to LONG_MAX.
+ Account for an API change in newer versions of Cyrus-SASL.
+ Patch from Hajimu UMEMOTO from FreeBSD.
+ Do not try to resolve link-local addresses for IPv4 (just as it
+ is done for IPv6). Patch from John Beck of Oracle.
+ Improve logging of client and server STARTTLS connection failures
+ that may be due to incompatible cipher lists by including
+ the reason for the failure in a single log line. Suggested
+ by James Carey of Boeing.
+ Portability:
+ Add support for Darwin 11.x and 12.x (Mac OS X 10.7 and 10.8).
+ Add support for SunOS 5.12 (aka Solaris 12). Patch from
+ John Beck of Oracle.
+
8.14.5/8.14.5 2011/05/17
Do not cache SMTP extensions across connections as the cache
is based on hostname which may not be a unique identifier
diff --git a/cf/README b/cf/README
index e3496e927b6e..6d34ac6ada07 100644
--- a/cf/README
+++ b/cf/README
@@ -1144,7 +1144,7 @@ relay_hosts_only
For example, if you specify ``foo.com'', then mail to or
from foo.com, abc.foo.com, or a.very.deep.domain.foo.com
will all be accepted for relaying. This feature changes
- the behaviour to lookup individual host names only.
+ the behaviour to look up individual host names only.
relay_based_on_MX
Turns on the ability to allow relaying based on the MX
@@ -2230,9 +2230,9 @@ command:
FEATURE(`ldap_routing', <mailHost>, <mailRoutingAddress>, <bounce>,
<detail>, <nodomain>, <tempfail>)
-where <mailHost> is a map definition describing how to lookup an alternative
+where <mailHost> is a map definition describing how to look up an alternative
mail host for a particular address; <mailRoutingAddress> is a map definition
-describing how to lookup an alternative address for a particular address;
+describing how to look up an alternative address for a particular address;
the <bounce> argument, if present and not the word "passthru", dictates
that mail should be bounced if neither a mailHost nor mailRoutingAddress
is found, if set to "sendertoo", the sender will be rejected if not
@@ -4701,4 +4701,4 @@ M4 DIVERSIONS
8 DNS based blacklists
9 special local rulesets (1 and 2)
-$Revision: 8.727 $, Last updated $Date: 2009/05/07 23:46:17 $
+$Revision: 8.728 $, Last updated $Date: 2012/09/07 16:29:13 $
diff --git a/cf/cf/generic-bsd4.4.cf b/cf/cf/generic-bsd4.4.cf
index f425fd2feb16..e00799416868 100644
--- a/cf/cf/generic-bsd4.4.cf
+++ b/cf/cf/generic-bsd4.4.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:13 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:14 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -41,7 +41,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -122,7 +122,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -934,6 +934,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-hpux10.cf b/cf/cf/generic-hpux10.cf
index a0662251595b..c44c676dd3ea 100644
--- a/cf/cf/generic-hpux10.cf
+++ b/cf/cf/generic-hpux10.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:13 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -42,7 +42,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -935,6 +935,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-hpux9.cf b/cf/cf/generic-hpux9.cf
index 9fab057fb4b5..0888d3900bf2 100644
--- a/cf/cf/generic-hpux9.cf
+++ b/cf/cf/generic-hpux9.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:13 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:14 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -42,7 +42,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -935,6 +935,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-linux.cf b/cf/cf/generic-linux.cf
index e65a50d1910c..80a8b431b905 100644
--- a/cf/cf/generic-linux.cf
+++ b/cf/cf/generic-linux.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:13 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -46,7 +46,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -127,7 +127,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -939,6 +939,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-mpeix.cf b/cf/cf/generic-mpeix.cf
index f99a971a8cf3..c98db213804f 100644
--- a/cf/cf/generic-mpeix.cf
+++ b/cf/cf/generic-mpeix.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:13 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -42,7 +42,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -935,6 +935,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-nextstep3.3.cf b/cf/cf/generic-nextstep3.3.cf
index caa8a3376ead..5ee438489488 100644
--- a/cf/cf/generic-nextstep3.3.cf
+++ b/cf/cf/generic-nextstep3.3.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:13 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -41,7 +41,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -122,7 +122,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -934,6 +934,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-osf1.cf b/cf/cf/generic-osf1.cf
index 9c0f12602026..dbba6ebb048f 100644
--- a/cf/cf/generic-osf1.cf
+++ b/cf/cf/generic-osf1.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:13 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -42,7 +42,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -935,6 +935,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-solaris.cf b/cf/cf/generic-solaris.cf
index 79216050ea81..726ca7028f32 100644
--- a/cf/cf/generic-solaris.cf
+++ b/cf/cf/generic-solaris.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:13 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -41,7 +41,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -122,7 +122,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -934,6 +934,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-sunos4.1.cf b/cf/cf/generic-sunos4.1.cf
index c5d5e0111bb1..f249580dfeb3 100644
--- a/cf/cf/generic-sunos4.1.cf
+++ b/cf/cf/generic-sunos4.1.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:14 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -42,7 +42,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -935,6 +935,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/generic-ultrix4.cf b/cf/cf/generic-ultrix4.cf
index 06de2cb9a28c..286607ccf851 100644
--- a/cf/cf/generic-ultrix4.cf
+++ b/cf/cf/generic-ultrix4.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:14 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -42,7 +42,7 @@
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
-DZ8.14.5
+DZ8.14.6
###############
@@ -935,6 +935,8 @@ R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please t
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/cf/submit.cf b/cf/cf/submit.cf
index 6cc386a6a699..62c05e9c2d2c 100644
--- a/cf/cf/submit.cf
+++ b/cf/cf/submit.cf
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
-##### built by ca@wiz.smi.sendmail.com on Sat May 14 21:31:14 PDT 2011
-##### in /extra/home/ca/sm-8.14.5/OpenSource/sendmail-8.14.5/cf/cf
+##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
+##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -35,7 +35,7 @@
##### $Id: no_default_msa.m4,v 8.2 2001/02/14 05:03:22 gshapiro Exp $ #####
-##### $Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $ #####
+##### $Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $ #####
# level 10 config file format
V10/Berkeley
@@ -114,7 +114,7 @@ D{MTAHost}[127.0.0.1]
# Configuration version number
-DZ8.14.5/Submit
+DZ8.14.6/Submit
###############
@@ -926,6 +926,8 @@ SParseLocal=98
+
+
######################################################################
### CanonAddr -- Convert an address into a standard form for
### relay checking. Route address syntax is
diff --git a/cf/feature/ldap_routing.m4 b/cf/feature/ldap_routing.m4
index e9b488039cb5..8959e20463ee 100644
--- a/cf/feature/ldap_routing.m4
+++ b/cf/feature/ldap_routing.m4
@@ -10,7 +10,7 @@ divert(-1)
#
divert(0)
-VERSIONID(`$Id: ldap_routing.m4,v 8.18 2010/01/05 00:57:27 ca Exp $')
+VERSIONID(`$Id: ldap_routing.m4,v 8.20 2012/01/18 22:27:06 ca Exp $')
divert(-1)
# Check first two arguments. If they aren't set, may need to warn in proto.m4
diff --git a/cf/m4/proto.m4 b/cf/m4/proto.m4
index 8bfd9de93ea3..9eae488a0cb6 100644
--- a/cf/m4/proto.m4
+++ b/cf/m4/proto.m4
@@ -13,7 +13,7 @@ divert(-1)
#
divert(0)
-VERSIONID(`$Id: proto.m4,v 8.744 2010/11/23 20:29:47 guenther Exp $')
+VERSIONID(`$Id: proto.m4,v 8.760 2012/09/07 16:30:15 ca Exp $')
# level CF_LEVEL config file format
V`'CF_LEVEL`'ifdef(`NO_VENDOR',`', `/ifdef(`VENDOR_NAME', `VENDOR_NAME', `Berkeley')')
@@ -1532,8 +1532,9 @@ R<?> <e s> <$+> $#error $@ nouser $: "550 User unknown"')
R<?> <$*> <$+> $@ $2',
`dnl
# return the original address
-R<> <> <$+> <@ $+> <$*> $@ $1')',
-`dnl')
+R<> <> <$+> <@ $+> <$*> $@ $1')
+')
+
ifelse(substr(confDELIVERY_MODE,0,1), `d', `errprint(`WARNING: Antispam rules not available in deferred delivery mode.
')')
diff --git a/cf/m4/version.m4 b/cf/m4/version.m4
index 566c3a514afc..ae084d179838 100644
--- a/cf/m4/version.m4
+++ b/cf/m4/version.m4
@@ -1,6 +1,6 @@
divert(-1)
#
-# Copyright (c) 1998-2011 Sendmail, Inc. and its suppliers.
+# Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
# All rights reserved.
# Copyright (c) 1983 Eric P. Allman. All rights reserved.
# Copyright (c) 1988, 1993
@@ -11,8 +11,8 @@ divert(-1)
# the sendmail distribution.
#
#
-VERSIONID(`$Id: version.m4,v 8.214 2011/04/26 23:02:36 ca Exp $')
+VERSIONID(`$Id: version.m4,v 8.222 2012/12/19 05:11:43 ca Exp $')
#
divert(0)
# Configuration version number
-DZ8.14.5`'ifdef(`confCF_VERSION', `/confCF_VERSION')
+DZ8.14.6`'ifdef(`confCF_VERSION', `/confCF_VERSION')
diff --git a/devtools/M4/UNIX/defines.m4 b/devtools/M4/UNIX/defines.m4
index a4a04c6cc35b..3b692ed692db 100644
--- a/devtools/M4/UNIX/defines.m4
+++ b/devtools/M4/UNIX/defines.m4
@@ -10,7 +10,7 @@ divert(-1)
#
# Definitions for Makefile construction for sendmail
#
-# $Id: defines.m4,v 8.47 2006/10/06 05:44:44 ca Exp $
+# $Id: defines.m4,v 8.48 2012/01/21 00:07:08 ashish Exp $
#
# temporary hack: if confREQUIRE_LIBSM is set then also set confREQUIRE_SM_OS_H
ifdef(`confREQUIRE_LIBSM',`
@@ -68,10 +68,10 @@ INCDIRS= confINCDIRS
LIBDIRS=confLIBDIRS
# Additional libs needed
-LIBADD= ifdef(`conf_'bldCURRENT_PRD`_LIBS', `conf_'bldCURRENT_PRD`_LIBS')
+LIBADD= ifdef(`conf_'bldCURRENT_PRD`_LIBS', `conf_'bldCURRENT_PRD`_LIBS')
# libraries required on your system
-LIBS= ${LIBADD} ifdef(`confLIBS', `confLIBS') ifdef(`conf_'bldCURRENT_PRD`_LIB_POST', `conf_'bldCURRENT_PRD`_LIB_POST')
+LIBS= ${LIBADD} ifdef(`confLIBS', `confLIBS') ifdef(`conf_'bldCURRENT_PRD`_LIB_POST', `conf_'bldCURRENT_PRD`_LIB_POST')
# location of sendmail binary (usually /usr/sbin or /usr/lib)
BINDIR= ifdef(`confMBINDIR', `confMBINDIR', `/usr/sbin')
@@ -101,7 +101,7 @@ ifdef(`conf_'bldCURRENT_PRD`_SRCADD', `bldLIST_PUSH_ITEM(`bldSOURCES', `conf_'bl
# additional .o files needed
OBJADD= ifdef(`confOBJADD', `confOBJADD')
-bldCURRENT_PRODUCT`OBJADD'= ifdef(`conf_'bldCURRENT_PRD`_OBJADD', `conf_'bldCURRENT_PRD`_OBJADD') ifdef(`confLIBADD', `bldADD_EXTENSIONS(`a', confLIBADD)', `')
+bldCURRENT_PRODUCT`OBJADD'= ifdef(`conf_'bldCURRENT_PRD`_OBJADD', `conf_'bldCURRENT_PRD`_OBJADD') ifdef(`confLIBADD', `bldADD_EXTENSIONS(`a', confLIBADD)', `')
# copy files
CP= ifdef(`confCOPY', `confCOPY', `cp')
diff --git a/devtools/M4/UNIX/links.m4 b/devtools/M4/UNIX/links.m4
index d47eb5b2dc3b..25ccce55fb26 100644
--- a/devtools/M4/UNIX/links.m4
+++ b/devtools/M4/UNIX/links.m4
@@ -10,17 +10,17 @@ divert(-1)
#
# Definitions for Makefile construction for sendmail
#
-# $Id: links.m4,v 8.5 1999/07/25 03:53:08 gshapiro Exp $
+# $Id: links.m4,v 8.6 2012/01/21 00:07:08 ashish Exp $
#
divert(0)dnl
define(`bldMAKE_SOURCE_LINK',
`$1: ${SRCDIR}/$1
-ln -s ${SRCDIR}/$1 $1'
)dnl
-define(`bldMAKE_SOURCE_LINKS',
+define(`bldMAKE_SOURCE_LINKS',
`bldFOREACH(`bldMAKE_SOURCE_LINK(', $1)'dnl
)dnl
-define(`bldMAKE_TARGET_LINKS',
+define(`bldMAKE_TARGET_LINKS',
` for i in $2; do \
rm -f $$i; \
ln -s $1 $$i; \
diff --git a/devtools/M4/UNIX/manpage.m4 b/devtools/M4/UNIX/manpage.m4
index c46cf6fb49bb..d1bdad499e09 100644
--- a/devtools/M4/UNIX/manpage.m4
+++ b/devtools/M4/UNIX/manpage.m4
@@ -10,7 +10,7 @@ divert(-1)
#
# Definitions for Makefile construction for sendmail
#
-# $Id: manpage.m4,v 8.15 2006/09/07 22:13:07 ca Exp $
+# $Id: manpage.m4,v 8.16 2012/01/21 00:07:08 ashish Exp $
#
divert(0)dnl
@@ -51,7 +51,7 @@ MAN8MAN=${MANROOTMAN}ifdef(`confMAN8', `confMAN8', `8')
MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8')
MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0')
-define(`bldMAN_TARGET_NAME',
+define(`bldMAN_TARGET_NAME',
`bldGET_MAN_BASE_NAME($1).${MAN`'bldGET_MAN_SOURCE_NUM($1)`SRC}' 'dnl
)dnl
MANPAGES= bldFOREACH(`bldMAN_TARGET_NAME(', `bldMAN_PAGES')
@@ -66,11 +66,11 @@ bldFOREACH(`bldMAN_BUILD_CMD(', `bldMAN_PAGES')
install-docs: ${MANPAGES}
ifdef(`confNO_MAN_INSTALL', `divert(-1)', `dnl')
-define(`bldMAN_INSTALL_CMD',
-`ifdef(`confDONT_INSTALL_CATMAN', `dnl',
+define(`bldMAN_INSTALL_CMD',
+`ifdef(`confDONT_INSTALL_CATMAN', `dnl',
` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC} ]; then confMKDIR -p ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}; else :; fi ')
${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).`${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'')
-ifdef(`confINSTALL_RAWMAN',
+ifdef(`confINSTALL_RAWMAN',
` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN} ]; then confMKDIR -p ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}; else :; fi ')
${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1) `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'', `dnl')'
)dnl
diff --git a/devtools/M4/list.m4 b/devtools/M4/list.m4
index f11590bb1113..53d4785aab75 100644
--- a/devtools/M4/list.m4
+++ b/devtools/M4/list.m4
@@ -10,7 +10,7 @@ divert(-1)
#
# Definitions for Makefile construction for sendmail
#
-# $Id: list.m4,v 8.3 1999/07/15 22:46:05 rand Exp $
+# $Id: list.m4,v 8.4 2012/01/21 00:07:07 ashish Exp $
#
divert(0)dnl
define(`bldLIST_PUSH_ITEM',
@@ -18,7 +18,7 @@ define(`bldLIST_PUSH_ITEM',
)dnl
define(`bldFOREACH',
`$1substr($2, `0', index($2, ` ')))`'ifelse(index($2, ` '), eval(len($2)-1), , `bldFOREACH(`$1', substr($2, index($2, ` ')))')'dnl
-)dnl
+)dnl
define(`bldADD_PATH', `$1/$2 ')dnl
define(`bldADD_PATHS',
diff --git a/devtools/M4/switch.m4 b/devtools/M4/switch.m4
index e63cb17a9f61..c3684770f03f 100644
--- a/devtools/M4/switch.m4
+++ b/devtools/M4/switch.m4
@@ -10,7 +10,7 @@ divert(-1)
#
# Definitions for Makefile construction for sendmail
#
-# $Id: switch.m4,v 8.17 2008/08/06 22:41:33 guenther Exp $
+# $Id: switch.m4,v 8.18 2012/01/21 00:07:07 ashish Exp $
#
divert(0)dnl
include(confBUILDTOOLSDIR`/M4/string.m4')dnl
@@ -57,7 +57,7 @@ define(`bldPRODUCT_END',
include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/smlib.m4')dnl
-define(`bldFINISH',
+define(`bldFINISH',
ifdef(`bldDONT_INCLUDE_ALL', ,``include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/all.m4')'')dnl
undivert(bldTARGETS_SECTION)dnl
)dnl
diff --git a/devtools/OS/Darwin.11.x b/devtools/OS/Darwin.11.x
new file mode 100644
index 000000000000..7fdd1ff68db4
--- /dev/null
+++ b/devtools/OS/Darwin.11.x
@@ -0,0 +1,25 @@
+# $Id: Darwin.11.x,v 1.1 2011/11/23 01:08:48 gshapiro Exp $
+
+dnl DO NOT EDIT THIS FILE.
+dnl Place personal settings in devtools/Site/site.config.m4
+
+#
+define(`confCC', `cc -pipe ${Extra_CC_Flags}')
+define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')
+define(`confENVDEF', `-DDARWIN=110000 -DBIND_8_COMPAT -DNETINET6')
+define(`confLDOPTS', `${Extra_LD_Flags}')
+define(`confMTLDOPTS', `-lpthread')
+define(`confMILTER_STATIC', `')
+define(`confDEPEND_TYPE', `CC-M')
+define(`confOPTIMIZE', `-O3')
+define(`confRANLIBOPTS', `-c')
+define(`confHFDIR', `/usr/share/sendmail')
+define(`confINSTALL_RAWMAN')
+define(`confMANOWN', `root')
+define(`confMANGRP', `wheel')
+define(`confUBINOWN', `root')
+define(`confUBINGRP', `wheel')
+define(`confSBINOWN', `root')
+define(`confSBINGRP', `wheel')
+define(`confLDOPTS_SO', `-dynamiclib -flat_namespace -undefined suppress -single_module')
+define(`confSHAREDLIB_EXT', `.dylib')
diff --git a/devtools/OS/HP-UX.11.x b/devtools/OS/HP-UX.11.x
index f04bc49b9b6f..731d7fb12447 100644
--- a/devtools/OS/HP-UX.11.x
+++ b/devtools/OS/HP-UX.11.x
@@ -1,4 +1,4 @@
-# $Id: HP-UX.11.x,v 8.26 2003/11/21 01:05:09 lijian Exp $
+# $Id: HP-UX.11.x,v 8.27 2012/01/21 00:07:09 ashish Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
@@ -23,7 +23,7 @@ define(`confLDOPTS_SO', `-b')
define(`confCCOPTS_SO', `')
dnl Don't indent or put any tab/space in this file.
-dnl Tab/space here causes make syntax error
+dnl Tab/space here causes make syntax error
ifelse(confBLDVARIANT, `DEBUG',
dnl Debug build
`
diff --git a/devtools/OS/IRIX.6.5 b/devtools/OS/IRIX.6.5
index 06234e49a1c6..ca1f686adf16 100644
--- a/devtools/OS/IRIX.6.5
+++ b/devtools/OS/IRIX.6.5
@@ -1,4 +1,4 @@
-# $Id: IRIX.6.5,v 8.23 2002/03/21 23:59:25 gshapiro Exp $
+# $Id: IRIX.6.5,v 8.24 2012/01/21 00:07:09 ashish Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
@@ -8,10 +8,10 @@ define(`confLIBSEARCHPATH', `/lib32 /usr/lib32')
define(`confMAPDEF', `-DNEWDB -DNDBM -DNIS -DMAP_REGEX -DMAP_NSD')
define(`confENVDEF', `-DIRIX6')
define(`confSM_OS_HEADER', `sm_os_irix')
-define(`confMANOWN', `root')
-define(`confMANGRP', `sys')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `sys')
+define(`confMANOWN', `root')
+define(`confMANGRP', `sys')
+define(`confUBINOWN', `root')
+define(`confUBINGRP', `sys')
define(`confMBINDIR', `/usr/lib')
define(`confUBINDIR', `/usr/bsd')
define(`confEBINDIR', `/usr/lib')
diff --git a/devtools/OS/IRIX.6.x b/devtools/OS/IRIX.6.x
index 92b0f496addc..40c86948f068 100644
--- a/devtools/OS/IRIX.6.x
+++ b/devtools/OS/IRIX.6.x
@@ -1,4 +1,4 @@
-# $Id: IRIX.6.x,v 8.30 2002/03/21 23:59:25 gshapiro Exp $
+# $Id: IRIX.6.x,v 8.31 2012/01/21 00:07:09 ashish Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
@@ -8,10 +8,10 @@ define(`confLIBSEARCHPATH', `/lib32 /usr/lib32')
define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
define(`confENVDEF', `-DIRIX6')
define(`confSM_OS_HEADER', `sm_os_irix')
-define(`confMANOWN', `root')
-define(`confMANGRP', `sys')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `sys')
+define(`confMANOWN', `root')
+define(`confMANGRP', `sys')
+define(`confUBINOWN', `root')
+define(`confUBINGRP', `sys')
define(`confMBINDIR', `/usr/lib')
define(`confUBINDIR', `/usr/bsd')
define(`confEBINDIR', `/usr/lib')
diff --git a/devtools/OS/IRIX64.6.0 b/devtools/OS/IRIX64.6.0
index 536ab15c2999..82b4ba78cb8b 100644
--- a/devtools/OS/IRIX64.6.0
+++ b/devtools/OS/IRIX64.6.0
@@ -1,4 +1,4 @@
-# $Id: IRIX64.6.0,v 8.21 2002/03/21 23:59:25 gshapiro Exp $
+# $Id: IRIX64.6.0,v 8.22 2012/01/21 00:07:09 ashish Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
@@ -7,10 +7,10 @@ define(`confMAPDEF', `-DNDBM')
define(`confENVDEF', `-DIRIX64')
define(`confSM_OS_HEADER', `sm_os_irix')
define(`confLIBS', `-lelf -lmalloc')
-define(`confMANOWN', `root')
-define(`confMANGRP', `sys')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `sys')
+define(`confMANOWN', `root')
+define(`confMANGRP', `sys')
+define(`confUBINOWN', `root')
+define(`confUBINGRP', `sys')
define(`confMBINDIR', `/usr/lib')
define(`confUBINDIR', `/usr/bsd')
define(`confEBINDIR', `/usr/lib')
diff --git a/devtools/OS/IRIX64.6.1 b/devtools/OS/IRIX64.6.1
index b051cd47bfb0..bdfcd4e0eb99 100644
--- a/devtools/OS/IRIX64.6.1
+++ b/devtools/OS/IRIX64.6.1
@@ -1,4 +1,4 @@
-# $Id: IRIX64.6.1,v 8.21 2002/03/21 23:59:25 gshapiro Exp $
+# $Id: IRIX64.6.1,v 8.22 2012/01/21 00:07:09 ashish Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
@@ -7,10 +7,10 @@ define(`confMAPDEF', `-DNDBM')
define(`confENVDEF', `-DIRIX64')
define(`confSM_OS_HEADER', `sm_os_irix')
define(`confLIBS', `-lelf -lmalloc')
-define(`confMANOWN', `root')
-define(`confMANGRP', `sys')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `sys')
+define(`confMANOWN', `root')
+define(`confMANGRP', `sys')
+define(`confUBINOWN', `root')
+define(`confUBINGRP', `sys')
define(`confMBINDIR', `/usr/lib')
define(`confUBINDIR', `/usr/bsd')
define(`confEBINDIR', `/usr/lib')
diff --git a/devtools/OS/IRIX64.6.5 b/devtools/OS/IRIX64.6.5
index fab1e71b309c..01c190c33681 100644
--- a/devtools/OS/IRIX64.6.5
+++ b/devtools/OS/IRIX64.6.5
@@ -1,4 +1,4 @@
-# $Id: IRIX64.6.5,v 8.21 2002/03/21 23:59:25 gshapiro Exp $
+# $Id: IRIX64.6.5,v 8.22 2012/01/21 00:07:09 ashish Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
@@ -8,10 +8,10 @@ define(`confLIBSEARCHPATH', `/lib32 /usr/lib32')
define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
define(`confENVDEF', `-DIRIX6')
define(`confSM_OS_HEADER', `sm_os_irix')
-define(`confMANOWN', `root')
-define(`confMANGRP', `sys')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `sys')
+define(`confMANOWN', `root')
+define(`confMANGRP', `sys')
+define(`confUBINOWN', `root')
+define(`confUBINGRP', `sys')
define(`confMBINDIR', `/usr/lib')
define(`confUBINDIR', `/usr/bsd')
define(`confEBINDIR', `/usr/lib')
diff --git a/devtools/OS/IRIX64.6.x b/devtools/OS/IRIX64.6.x
index a0934cf0fe21..dc2a659e8fc4 100644
--- a/devtools/OS/IRIX64.6.x
+++ b/devtools/OS/IRIX64.6.x
@@ -1,4 +1,4 @@
-# $Id: IRIX64.6.x,v 8.30 2002/03/21 23:59:25 gshapiro Exp $
+# $Id: IRIX64.6.x,v 8.31 2012/01/21 00:07:09 ashish Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
@@ -8,10 +8,10 @@ define(`confLIBSEARCHPATH', `/lib32 /usr/lib32')
define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
define(`confENVDEF', `-DIRIX6')
define(`confSM_OS_HEADER', `sm_os_irix')
-define(`confMANOWN', `root')
-define(`confMANGRP', `sys')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `sys')
+define(`confMANOWN', `root')
+define(`confMANGRP', `sys')
+define(`confUBINOWN', `root')
+define(`confUBINGRP', `sys')
define(`confMBINDIR', `/usr/lib')
define(`confUBINDIR', `/usr/bsd')
define(`confEBINDIR', `/usr/lib')
diff --git a/devtools/OS/SunOS.5.12 b/devtools/OS/SunOS.5.12
new file mode 100644
index 000000000000..251e11af4f1e
--- /dev/null
+++ b/devtools/OS/SunOS.5.12
@@ -0,0 +1,26 @@
+# $Id: SunOS.5.12,v 1.1 2012/12/12 02:34:40 ca Exp $
+
+dnl DO NOT EDIT THIS FILE.
+dnl Place personal settings in devtools/Site/site.config.m4
+
+define(`confCC', `gcc')
+define(`confLDOPTS_SO', `-G')
+define(`confBEFORE', `sysexits.h')
+define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
+define(`confENVDEF', `-DSOLARIS=21200 -DNETINET6')
+define(`confSM_OS_HEADER', `sm_os_sunos')
+define(`confLIBS', `-lsocket -lnsl')
+define(`confMTCCOPTS', `-D_REENTRANT')
+define(`confMTLDOPTS', `-lpthread')
+define(`confMBINDIR', `/usr/lib')
+define(`confEBINDIR', `/usr/lib')
+define(`confSBINGRP', `sys')
+define(`confINSTALL', `${BUILDBIN}/install.sh')
+define(`confDEPEND_TYPE', `CC-M')
+PUSHDIVERT(3)
+sysexits.h:
+ if [ -r /usr/include/sysexits.h ]; \
+ then \
+ ln -s /usr/include/sysexits.h; \
+ fi
+POPDIVERT
diff --git a/devtools/OS/UNICOS-mp b/devtools/OS/UNICOS-mp
index b98652a3f4c8..bb7ac9441d1d 100644
--- a/devtools/OS/UNICOS-mp
+++ b/devtools/OS/UNICOS-mp
@@ -1,4 +1,4 @@
-# $Id: UNICOS-mp,v 8.1 2003/04/21 17:03:52 ca Exp $
+# $Id: UNICOS-mp,v 8.2 2012/01/21 00:07:09 ashish Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
@@ -6,11 +6,11 @@ dnl Place personal settings in devtools/Site/site.config.m4
define(`confENVDEF', `-DUNICOSMP')
define(`confDEPEND_TYPE', `CC-M')
define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confMANGRP', `sys')
-define(`confMANOWN', `root')
+define(`confMANGRP', `sys')
+define(`confMANOWN', `root')
define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
define(`confSBINGRP', `sys')
define(`confSBINOWN', `root')
define(`confSM_OS_HEADER', `sm_os_unicosmp')
-define(`confUBINGRP', `sys')
-define(`confUBINOWN', `root')
+define(`confUBINGRP', `sys')
+define(`confUBINOWN', `root')
diff --git a/devtools/README b/devtools/README
index b7a0a83a179f..f3b74f279de8 100644
--- a/devtools/README
+++ b/devtools/README
@@ -100,8 +100,8 @@ confMKDIR [empty] A program that creates directories
confDEPEND_TYPE generic How to build dependencies. This should
be the name of a file in
devtools/M4/depend
-confDEPLIBS [empty] Dependent libraries when building
- shared objects.
+confDEPLIBS [empty] Dependent libraries when building
+ shared objects.
confDONT_INSTALL_CATMAN [undefined] Don't install the formatted manual
pages.
confEBINDIR /usr/libexec The location for binaries executed
@@ -214,8 +214,8 @@ confSETUSERID_INSTALL [undefined] Needs to be defined to enable the
install-set-user-id target for
sendmail. See sendmail/SECURITY.
confSHAREDLIB_EXT .so Shared library file extenion name.
-confSHAREDLIB_SUFFIX [empty] Shared object version suffix.
-confSHAREDLIBDIR /usr/lib/ Directory for installing shared
+confSHAREDLIB_SUFFIX [empty] Shared object version suffix.
+confSHAREDLIBDIR /usr/lib/ Directory for installing shared
library. Note: if the value is
not empty, it must end with a
slash ('/') otherwise it will not
@@ -395,4 +395,4 @@ files that make up the library.
bldINSTALLABLE - This should be set if the library should be installed in
confLIBDIR.
-$Revision: 8.103 $, Last updated $Date: 2009/01/22 02:15:07 $
+$Revision: 8.104 $, Last updated $Date: 2012/01/21 00:07:06 $
diff --git a/doc/op/op.me b/doc/op/op.me
index 1e7d37023886..270d4cfedb2a 100644
--- a/doc/op/op.me
+++ b/doc/op/op.me
@@ -9,7 +9,7 @@
.\" the sendmail distribution.
.\"
.\"
-.\" $Id: op.me,v 8.747 2010/05/08 04:18:27 ca Exp $
+.\" $Id: op.me,v 8.749 2012/03/02 22:37:11 ca Exp $
.\"
.\" eqn op.me | pic | troff -me
.\"
@@ -90,7 +90,7 @@ Sendmail, Inc.
.de Ve
Version \\$2
..
-.Ve $Revision: 8.747 $
+.Ve $Revision: 8.749 $
.rm Ve
.sp
For Sendmail Version 8.14
@@ -5999,7 +5999,7 @@ mailer.
.ip @
Look up addresses in the user database.
.ip %
-Do not attempt delivery on initial recipient of a message
+Do not attempt delivery on initial receipt of a message
or on queue runs
unless the queued message is selected
using one of the -qI/-qR/-qS queue run modifiers
@@ -7540,6 +7540,10 @@ This is intended to allow you to get responsiveness
by processing the queue fairly frequently
without thrashing your system by trying jobs too often.
The default units are minutes.
+Note:
+This option is ignored for queue runs that select a subset
+of the queue, i.e.,
+.q \-q[!][I|R|S|Q][string]
.ip MustQuoteChars=\fIs\fP
[no short name]
Sets the list of characters that must be quoted if used in a full name
@@ -11467,7 +11471,7 @@ replace it with a blank sheet for double-sided output.
.\".sz 10
.\"Eric Allman
.\".sp
-.\"Version $Revision: 8.747 $
+.\"Version $Revision: 8.749 $
.\".ce 0
.bp 3
.ce
diff --git a/doc/op/op.ps b/doc/op/op.ps
index e04760ad5972..4b09cfa85f94 100644
--- a/doc/op/op.ps
+++ b/doc/op/op.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19
-%%CreationDate: Sat May 14 21:30:54 2011
+%%CreationDate: Fri Dec 21 10:44:56 2012
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Roman
%%+ font Times-Italic
@@ -234,7 +234,7 @@ BP
(TION AND OPERA)-1.14 E(TION GUIDE)-1.14 E/F3 10/Times-Roman@0 SF
(Eric Allman)263.42 196.2 Q(Claus Assmann)256.75 208.2 Q(Gre)244.75
220.2 Q(gory Neil Shapiro)-.15 E(Sendmail, Inc.)258.975 232.2 Q -1.11
-(Ve)260.225 256.2 S(rsion 8.747)1.11 E -.15(Fo)234.465 280.2 S 2.5(rS)
+(Ve)260.225 256.2 S(rsion 8.749)1.11 E -.15(Fo)234.465 280.2 S 2.5(rS)
.15 G(endmail V)-2.5 E(ersion 8.14)-1.11 E/F4 10/Times-Italic@0 SF
(Sendmail)97 324.6 Q/F5 8/Times-Roman@0 SF(TM)-5 I F3 .1
(implements a general purpose internetw)2.6 5 N .1(ork mail routing f)
@@ -5054,10 +5054,11 @@ BP
(in with a `/'; if the).15 E 2.5(yd)-.15 G(o, con)-2.5 E -.15(ve)-.4 G
(rt them to the \231*\214le*\232 mailer).15 E(.)-.55 E 10.79(@L)102
128.4 S(ook up addresses in the user database.)-10.79 E 11.67(%D)102
-144.6 S 3.382(on)-11.67 G .882(ot attempt deli)-3.382 F -.15(ve)-.25 G
-.883(ry on initial recipient of a message or on queue runs unless the q\
-ueued).15 F(message is selected using one of the -qI/-qR/-qS queue run \
-modi\214ers or an ETRN request.)122 156.6 Q .268
+144.6 S 3.868(on)-11.67 G 1.368(ot attempt deli)-3.868 F -.15(ve)-.25 G
+1.369
+(ry on initial receipt of a message or on queue runs unless the queued)
+.15 F(message is selected using one of the -qI/-qR/-qS queue run modi\
+\214ers or an ETRN request.)122 156.6 Q .268
(Con\214guration \214les prior to le)127 172.8 R -.15(ve)-.25 G 2.768
(l6a).15 G .268(ssume the `)-2.768 F -1.11(A')-.8 G 2.768(,`)1.11 G .268
(w', `5', `:', `|', `/', and `@' options on the)-2.768 F
@@ -6369,711 +6370,711 @@ R -.4(DA)2.5 G 1.86 -.93(TA c)-.71 H(ommand and terminating `).93 E(`.)
R 4.399(al. This)-.25 F 1.899(is intended to allo)4.399 F 4.399(wy)-.25
G 1.899(ou to get respon-)-4.399 F(si)174 321 Q -.15(ve)-.25 G .665
(ness by processing the queue f).15 F .665
-(airly frequently without thrashing your system)-.1 F
-(by trying jobs too often.)174 333 Q(The def)5 E
-(ault units are minutes.)-.1 E(MustQuoteChars=)102 349.2 Q F2(s)A F1
-1.253([no short name] Sets the list of characters that must be quoted i\
-f used in a full)174 361.2 R 1.217
-(name that is in the phrase part of a `)174 373.2 R 1.217
+(airly frequently without thrashing your system)-.1 F 1.91
+(by trying jobs too often.)174 333 R 1.91(The def)6.91 F 1.91
+(ault units are minutes.)-.1 F 1.91(Note: This option is)6.91 F 8.212
+(ignored for queue runs that select a subset of the queue, i.e.,)174 345
+R(\231\255q[!][I|R|S|Q][string]\232)174 357 Q(MustQuoteChars=)102 373.2
+Q F2(s)A F1 1.253([no short name] Sets the list of characters that must\
+ be quoted if used in a full)174 385.2 R 1.217
+(name that is in the phrase part of a `)174 397.2 R 1.217
(`phrase <address>')-.74 F 3.717('s)-.74 G 3.717(yntax. The)-3.717 F
-(def)3.718 E 1.218(ault is)-.1 F -.74(``)174 385.2 S<b42e>.74 E -.74('')
+(def)3.718 E 1.218(ault is)-.1 F -.74(``)174 409.2 S<b42e>.74 E -.74('')
-.7 G 5(.T).74 G(he characters `)-5 E(`@,;:\\\(\)[]')-.74 E 2.5('a)-.74
G(re al)-2.5 E -.1(wa)-.1 G(ys added to this list.).1 E 7.85
-(NiceQueueRun [no)102 401.4 R 2.156
+(NiceQueueRun [no)102 425.4 R 2.156
(short name] The priority of queue runners \(nice\(3\)\).)4.656 F 2.156
(This v)7.156 F 2.155(alue must be)-.25 F(greater or equal zero.)174
-413.4 Q(NoRecipientAction)102 429.6 Q .554
-([no short name] The action to tak)174 441.6 R 3.055(ew)-.1 G .555
+437.4 Q(NoRecipientAction)102 453.6 Q .554
+([no short name] The action to tak)174 465.6 R 3.055(ew)-.1 G .555
(hen you recei)-3.055 F .855 -.15(ve a m)-.25 H .555
(essage that has no v).15 F(alid)-.25 E .625(recipient headers \(T)174
-453.6 R .625(o:, Cc:, Bcc:, or Apparently-T)-.8 F .625
+477.6 R .625(o:, Cc:, Bcc:, or Apparently-T)-.8 F .625
(o: \212 the last included for back)-.8 F .108(compatibility with old)
-174 465.6 R F2(sendmail)2.608 E F1 2.608(s\). It)B .108(can be)2.608 F
+174 489.6 R F2(sendmail)2.608 E F1 2.608(s\). It)B .108(can be)2.608 F
F0(None)2.608 E F1 .109(to pass the message on unmod-)2.609 F .297
-(i\214ed, which violates the protocol,)174 477.6 R F0(Add-T)2.796 E(o)
+(i\214ed, which violates the protocol,)174 501.6 R F0(Add-T)2.796 E(o)
-.92 E F1 .296(to add a T)2.796 F .296(o: header with an)-.8 F 2.796(yr)
--.15 G(ecipients)-2.796 E 1.638(it can \214nd in the en)174 489.6 R -.15
+-.15 G(ecipients)-2.796 E 1.638(it can \214nd in the en)174 513.6 R -.15
(ve)-.4 G 1.638(lope \(which might e).15 F 1.638
(xpose Bcc: recipients\),)-.15 F F0(Add-A)4.139 E(ppar)-.25 E(-)-.37 E
-(ently-T)174 501.6 Q(o)-.92 E F1 .338(to add an Apparently-T)2.838 F
+(ently-T)174 525.6 Q(o)-.92 E F1 .338(to add an Apparently-T)2.838 F
.337(o: header \(this is only for back-compatibility and)-.8 F .841
-(is of)174 513.6 R .841(\214cially deprecated\),)-.25 F F0(Add-T)3.341 E
+(is of)174 537.6 R .841(\214cially deprecated\),)-.25 F F0(Add-T)3.341 E
(o-Undisclosed)-.92 E F1 .841(to add a header \231T)3.341 F .842
-(o: undisclosed-)-.8 F .398(recipients:;\232 to mak)174 525.6 R 2.898
+(o: undisclosed-)-.8 F .398(recipients:;\232 to mak)174 549.6 R 2.898
(et)-.1 G .397(he header le)-2.898 F -.05(ga)-.15 G 2.897(lw).05 G .397
(ithout disclosing an)-2.897 F .397(ything, or)-.15 F F0(Add-Bcc)2.897 E
-F1(to)2.897 E(add an empty Bcc: header)174 537.6 Q(.)-.55 E 1.18
-(OldStyleHeaders [o])102 553.8 R 1.713(Assume that the headers may be i\
+F1(to)2.897 E(add an empty Bcc: header)174 561.6 Q(.)-.55 E 1.18
+(OldStyleHeaders [o])102 577.8 R 1.713(Assume that the headers may be i\
n old format, i.e., spaces delimit names.)4.213 F 1.069
-(This actually turns on an adapti)174 565.8 R 1.368 -.15(ve a)-.25 H
+(This actually turns on an adapti)174 589.8 R 1.368 -.15(ve a)-.25 H
1.068(lgorithm: if an).15 F 3.568(yr)-.15 G 1.068
(ecipient address contains a)-3.568 F 1.681
-(comma, parenthesis, or angle brack)174 577.8 R 1.681
-(et, it will be assumed that commas already)-.1 F -.15(ex)174 589.8 S
+(comma, parenthesis, or angle brack)174 601.8 R 1.681
+(et, it will be assumed that commas already)-.1 F -.15(ex)174 613.8 S
2.825(ist. If).15 F .325
(this \215ag is not on, only commas delimit names.)2.825 F .325
(Headers are al)5.325 F -.1(wa)-.1 G .325(ys out-).1 F
-(put with commas between the names.)174 601.8 Q(Def)5 E(aults to of)-.1
-E(f.)-.25 E(OperatorChars=)102 618 Q F2 -.15(ch)C(arlist).15 E F1 1.438
+(put with commas between the names.)174 625.8 Q(Def)5 E(aults to of)-.1
+E(f.)-.25 E(OperatorChars=)102 642 Q F2 -.15(ch)C(arlist).15 E F1 1.438
([$o macro] The list of characters that are considered to be \231operat\
-ors\232, that is,)174 630 R .82(characters that delimit tok)174 642 R
+ors\232, that is,)174 654 R .82(characters that delimit tok)174 666 R
3.32(ens. All)-.1 F .82(operator characters are tok)3.32 F .82
(ens by themselv)-.1 F(es;)-.15 E .078
-(sequences of non-operator characters are also tok)174 654 R 2.578
+(sequences of non-operator characters are also tok)174 678 R 2.578
(ens. White)-.1 F .078(space characters sep-)2.578 F .27(arate tok)174
-666 R .27(ens b)-.1 F .269(ut are not tok)-.2 F .269(ens themselv)-.1 F
+690 R .27(ens b)-.1 F .269(ut are not tok)-.2 F .269(ens themselv)-.1 F
.269(es \212 for e)-.15 F .269(xample, \231)-.15 F .269
-(AAA.BBB\232 has three)-.8 F(tok)174 678 Q .433(ens, b)-.1 F .433
+(AAA.BBB\232 has three)-.8 F(tok)174 702 Q .433(ens, b)-.1 F .433
(ut \231)-.2 F .433(AAA BBB\232 has tw)-.8 F 2.933(o. If)-.1 F .433
(not set, OperatorChars def)2.933 F .433(aults to \231.)-.1 F 1.666
-(:@[])1.666 G<9a3b>-1.666 E(additionally)174 690 Q 3.566(,t)-.65 G 1.066
-(he characters \231\()-3.566 F 1.666(\)<>,;)1.666 G 3.566<9a61>-1.666 G
-1.066(re al)-3.566 F -.1(wa)-.1 G 1.065(ys operators.).1 F 1.065
-(Note that Operator)6.065 F(-)-.2 E
-(Chars must be set in the con\214guration \214le before an)174 702 Q 2.5
-(yr)-.15 G(ulesets.)-2.5 E 0 Cg EP
+(:@[])1.666 G<9a3b>-1.666 E(additionally)174 714 Q 8.845(,t)-.65 G 6.345
+(he characters \231\()-8.845 F 1.666(\)<>,;)1.666 G 8.845<9a61>-1.666 G
+6.345(re al)-8.845 F -.1(wa)-.1 G 6.345(ys operators.).1 F 6.345
+(Note that)11.345 F 0 Cg EP
%%Page: 73 69
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q
-(SMM:08-73)195.86 E/F1 10/Times-Roman@0 SF(PidFile=)102 96 Q/F2 10
+(SMM:08-73)195.86 E/F1 10/Times-Roman@0 SF
+(OperatorChars must be set in the con\214guration \214le before an)174
+96 Q 2.5(yr)-.15 G(ulesets.)-2.5 E(PidFile=)102 112.2 Q/F2 10
/Times-Italic@0 SF(\214lename)A F1 1.3
([no short name] Filename of the pid \214le.)3.58 F(\(def)6.3 E 1.3
-(ault is _P)-.1 F -1.11(AT)-.92 G(H_SENDMAILPID\).)1.11 E(The)174 108 Q
-F2(\214lename)2.832 E F1 .332(is macro-e)2.832 F .332
+(ault is _P)-.1 F -1.11(AT)-.92 G(H_SENDMAILPID\).)1.11 E(The)174 124.2
+Q F2(\214lename)2.832 E F1 .332(is macro-e)2.832 F .332
(xpanded before it is opened, and unlink)-.15 F .331(ed when)-.1 F F2
-(sendmail)2.831 E F1 -.15(ex)174 120 S(its.).15 E(PostmasterCop)102
-136.2 Q(y=)-.1 E F2(postmaster)A F1 .003
+(sendmail)2.831 E F1 -.15(ex)174 136.2 S(its.).15 E(PostmasterCop)102
+152.4 Q(y=)-.1 E F2(postmaster)A F1 .003
([P] If set, copies of error messages will be sent to the named)174
-148.2 R F2(postmaster)2.504 E F1 5.004(.O)C .004(nly the)-5.004 F .687
-(header of the f)174 160.2 R .687(ailed message is sent.)-.1 F .687
+164.4 R F2(postmaster)2.504 E F1 5.004(.O)C .004(nly the)-5.004 F .687
+(header of the f)174 176.4 R .687(ailed message is sent.)-.1 F .687
(Errors resulting from messages with a ne)5.687 F(g-)-.15 E(ati)174
-172.2 Q 1.83 -.15(ve p)-.25 H 1.53(recedence will not be sent.).15 F
+188.4 Q 1.83 -.15(ve p)-.25 H 1.53(recedence will not be sent.).15 F
1.531(Since most errors are user problems, this is)6.531 F .453
-(probably not a good idea on lar)174 184.2 R .453(ge sites, and ar)-.18
+(probably not a good idea on lar)174 200.4 R .453(ge sites, and ar)-.18
F .453(guably contains all sorts of pri)-.18 F -.25(va)-.25 G -.15(cy)
-.25 G .1(violations, b)174 196.2 R .101
+.25 G .1(violations, b)174 212.4 R .101
(ut it seems to be popular with certain operating systems v)-.2 F 2.601
-(endors. The)-.15 F 1.919(address is macro e)174 208.2 R 1.918
+(endors. The)-.15 F 1.919(address is macro e)174 224.4 R 1.918
(xpanded at the time of deli)-.15 F -.15(ve)-.25 G(ry).15 E 6.918(.D)
--.65 G(ef)-6.918 E 1.918(aults to no postmaster)-.1 F(copies.)174 220.2
-Q(Pri)102 236.4 Q -.25(va)-.25 G -.15(cy).25 G(Options=).15 E F2
-(opt,opt,...)1.666 E F1 1.191([p] Set the pri)174 248.4 R -.25(va)-.25 G
+-.65 G(ef)-6.918 E 1.918(aults to no postmaster)-.1 F(copies.)174 236.4
+Q(Pri)102 252.6 Q -.25(va)-.25 G -.15(cy).25 G(Options=).15 E F2
+(opt,opt,...)1.666 E F1 1.191([p] Set the pri)174 264.6 R -.25(va)-.25 G
-.15(cy).25 G F2(opt)3.841 E F1 3.691(ions. `)B(`Pri)-.74 E -.25(va)-.25
G -.15(cy).25 G 2.671 -.74('' i).15 H 3.692(sr).74 G 1.192
(eally a misnomer; man)-3.692 F 3.692(yo)-.15 G 3.692(ft)-3.692 G 1.192
-(hese are)-3.692 F .929(just a w)174 260.4 R .928
+(hese are)-3.692 F .929(just a w)174 276.6 R .928
(ay of insisting on stricter adherence to the SMTP protocol.)-.1 F(The)
-5.928 E F2(opt)3.428 E F1(ions)A(can be selected from:)174 272.4 Q 56.37
-(public Allo)214 288.6 R 2.5(wo)-.25 G(pen access)-2.5 E 27.49
-(needmailhelo Insist)214 300.6 R(on HELO or EHLO command before MAIL)2.5
-E(neede)214 312.6 Q 25.98(xpnhelo Insist)-.15 F
-(on HELO or EHLO command before EXPN)2.5 E(noe)214 324.6 Q 52.08
+5.928 E F2(opt)3.428 E F1(ions)A(can be selected from:)174 288.6 Q 56.37
+(public Allo)214 304.8 R 2.5(wo)-.25 G(pen access)-2.5 E 27.49
+(needmailhelo Insist)214 316.8 R(on HELO or EHLO command before MAIL)2.5
+E(neede)214 328.8 Q 25.98(xpnhelo Insist)-.15 F
+(on HELO or EHLO command before EXPN)2.5 E(noe)214 340.8 Q 52.08
(xpn Disallo)-.15 F 2.5(wE)-.25 G(XPN entirely)-2.5 E 2.5(,i)-.65 G
(mplies no)-2.5 E -.15(ve)-.15 G(rb).15 E(.)-.4 E 28.61
-(needvrfyhelo Insist)214 336.6 R(on HELO or EHLO command before VRFY)2.5
-E(no)214 348.6 Q 54.86(vrfy Disallo)-.15 F 2.5(wV)-.25 G(RFY entirely)
--2.5 E 55.82(noetrn Disallo)214 360.6 R 2.5(wE)-.25 G(TRN entirely)-2.5
-E(no)214 372.6 Q -.15(ve)-.15 G 53.9(rb Disallo).15 F 2.5(wV)-.25 G
-(ERB entirely)-2.5 E 30.82(restrictmailq Restrict)214 384.6 R
-(mailq command)2.5 E 35.27(restrictqrun Restrict)214 396.6 R
-(\255q command line \215ag)2.5 E(restricte)214 408.6 Q 24.87
+(needvrfyhelo Insist)214 352.8 R(on HELO or EHLO command before VRFY)2.5
+E(no)214 364.8 Q 54.86(vrfy Disallo)-.15 F 2.5(wV)-.25 G(RFY entirely)
+-2.5 E 55.82(noetrn Disallo)214 376.8 R 2.5(wE)-.25 G(TRN entirely)-2.5
+E(no)214 388.8 Q -.15(ve)-.15 G 53.9(rb Disallo).15 F 2.5(wV)-.25 G
+(ERB entirely)-2.5 E 30.82(restrictmailq Restrict)214 400.8 R
+(mailq command)2.5 E 35.27(restrictqrun Restrict)214 412.8 R
+(\255q command line \215ag)2.5 E(restricte)214 424.8 Q 24.87
(xpand Restrict)-.15 F<ad62>2.5 E 2.5(va)-.15 G
-(nd \255v command line \215ags)-2.5 E 40.27(noreceipts Don')214 422.6 R
+(nd \255v command line \215ags)-2.5 E 40.27(noreceipts Don')214 438.8 R
2.5(tr)-.18 G(eturn success DSNs)-2.5 E/F3 7/Times-Roman@0 SF(20)-4 I F1
-27.49(nobodyreturn Don')214 434.6 R 2.5(tr)-.18 G
-(eturn the body of a message with DSNs)-2.5 E(goa)214 446.6 Q -.1(wa)
+27.49(nobodyreturn Don')214 450.8 R 2.5(tr)-.18 G
+(eturn the body of a message with DSNs)-2.5 E(goa)214 462.8 Q -.1(wa)
-.15 G 53.02(yD).1 G(isallo)-53.02 E 2.5(we)-.25 G
-(ssentially all SMTP status queries)-2.5 E(authw)214 458.6 Q 27.59
+(ssentially all SMTP status queries)-2.5 E(authw)214 474.8 Q 27.59
(arnings Put)-.1 F(X-Authentication-W)2.5 E(arning: headers in messages)
--.8 E(and log w)297.87 470.6 Q(arnings)-.1 E 12.5
-(noactualrecipient Don')214 482.6 R 2.5(tp)-.18 G
-(ut X-Actual-Recipient lines in DSNs)-2.5 E(which re)297.87 494.6 Q -.15
+-.8 E(and log w)297.87 486.8 Q(arnings)-.1 E 12.5
+(noactualrecipient Don')214 498.8 R 2.5(tp)-.18 G
+(ut X-Actual-Recipient lines in DSNs)-2.5 E(which re)297.87 510.8 Q -.15
(ve)-.25 G(al the actual account that addresses map to.).15 E 2.976
-(The \231goa)174 510.8 R -.1(wa)-.15 G 2.976
+(The \231goa)174 527 R -.1(wa)-.15 G 2.976
(y\232 pseudo-\215ag sets all \215ags e).1 F 2.977
(xcept \231noreceipts\232, \231restrictmailq\232,)-.15 F 4.558
-(\231restrictqrun\232, \231restricte)174 522.8 R 4.557
+(\231restrictqrun\232, \231restricte)174 539 R 4.557
(xpand\232, \231noetrn\232, and \231nobodyreturn\232.)-.15 F 4.557
(If mailq is)9.557 F 1.842(restricted, only people in the same group as\
- the queue directory can print the)174 534.8 R 2.545(queue. If)174 546.8
-R .044(queue runs are restricted, only root and the o)2.545 F .044
-(wner of the queue directory)-.25 F 1.299(can run the queue.)174 558.8 R
+ the queue directory can print the)174 551 R 2.545(queue. If)174 563 R
+.044(queue runs are restricted, only root and the o)2.545 F .044
+(wner of the queue directory)-.25 F 1.299(can run the queue.)174 575 R
1.299(The \231restricte)6.299 F 1.299(xpand\232 pseudo-\215ag instructs)
--.15 F F2(sendmail)3.799 E F1 1.299(to drop)3.799 F(pri)174 570.8 Q
-(vile)-.25 E 1.608(ges when the)-.15 F F0<ad62>4.108 E(v)-.15 E F1 1.608
+-.15 F F2(sendmail)3.799 E F1 1.299(to drop)3.799 F(pri)174 587 Q(vile)
+-.25 E 1.608(ges when the)-.15 F F0<ad62>4.108 E(v)-.15 E F1 1.608
(option is gi)4.108 F -.15(ve)-.25 G 4.108(nb).15 G 4.108(yu)-4.108 G
-1.608(sers who are neither root nor the)-4.108 F -.35(Tr)174 582.8 S
-1.33(ustedUser so users cannot read pri).35 F -.25(va)-.25 G 1.33
+1.608(sers who are neither root nor the)-4.108 F -.35(Tr)174 599 S 1.33
+(ustedUser so users cannot read pri).35 F -.25(va)-.25 G 1.33
(te aliases, forw).25 F 1.33(ards, or :include: \214les.)-.1 F(It)6.33 E
.634(will add the \231NonRootSafeAddr\232 to the \231DontBlameSendmail\
-\232 option to pre)174 594.8 R -.15(ve)-.25 G(nt).15 E .436
-(misleading unsafe address w)174 606.8 R 2.936(arnings. It)-.1 F .436
+\232 option to pre)174 611 R -.15(ve)-.25 G(nt).15 E .436
+(misleading unsafe address w)174 623 R 2.936(arnings. It)-.1 F .436
(also o)2.936 F -.15(ve)-.15 G .436(rrides the).15 F F0<ad76>2.936 E F1
(\(v)2.936 E .436(erbose\) command)-.15 F 1.293(line option to pre)174
-618.8 R -.15(ve)-.25 G 1.292(nt information leakage.).15 F 1.292
+635 R -.15(ve)-.25 G 1.292(nt information leakage.).15 F 1.292
(Authentication W)6.292 F 1.292(arnings add w)-.8 F(arn-)-.1 E .183
-(ings about v)174 630.8 R .183
+(ings about v)174 647 R .183
(arious conditions that may indicate attempts to spoof the mail system,)
--.25 F(such as using a non-standard queue directory)174 642.8 Q(.)-.65 E
-(ProcessT)102 659 Q(itlePre\214x=)-.35 E F2(string)A F1 1.196
-([no short name] Pre\214x the process title sho)174 671 R 1.195
-(wn on 'ps' listings with)-.25 F F2(string)3.695 E F1 6.195(.T)C(he)
--6.195 E .32 LW 76 680.6 72 680.6 DL 80 680.6 76 680.6 DL 84 680.6 80
-680.6 DL 88 680.6 84 680.6 DL 92 680.6 88 680.6 DL 96 680.6 92 680.6 DL
-100 680.6 96 680.6 DL 104 680.6 100 680.6 DL 108 680.6 104 680.6 DL 112
-680.6 108 680.6 DL 116 680.6 112 680.6 DL 120 680.6 116 680.6 DL 124
-680.6 120 680.6 DL 128 680.6 124 680.6 DL 132 680.6 128 680.6 DL 136
-680.6 132 680.6 DL 140 680.6 136 680.6 DL 144 680.6 140 680.6 DL 148
-680.6 144 680.6 DL 152 680.6 148 680.6 DL 156 680.6 152 680.6 DL 160
-680.6 156 680.6 DL 164 680.6 160 680.6 DL 168 680.6 164 680.6 DL 172
-680.6 168 680.6 DL 176 680.6 172 680.6 DL 180 680.6 176 680.6 DL 184
-680.6 180 680.6 DL 188 680.6 184 680.6 DL 192 680.6 188 680.6 DL 196
-680.6 192 680.6 DL 200 680.6 196 680.6 DL 204 680.6 200 680.6 DL 208
-680.6 204 680.6 DL 212 680.6 208 680.6 DL 216 680.6 212 680.6 DL/F4 5
-/Times-Roman@0 SF(20)93.6 691 Q/F5 8/Times-Roman@0 SF(N.B.: the)3.2 I/F6
-8/Times-Bold@0 SF(nor)2 E(eceipts)-.144 E F5(\215ag turns of)2 E 2(fs)
--.2 G(upport for RFC 1891 \(Deli)-2 E -.12(ve)-.2 G
+-.25 F(such as using a non-standard queue directory)174 659 Q(.)-.65 E
+.32 LW 76 678.8 72 678.8 DL 80 678.8 76 678.8 DL 84 678.8 80 678.8 DL 88
+678.8 84 678.8 DL 92 678.8 88 678.8 DL 96 678.8 92 678.8 DL 100 678.8 96
+678.8 DL 104 678.8 100 678.8 DL 108 678.8 104 678.8 DL 112 678.8 108
+678.8 DL 116 678.8 112 678.8 DL 120 678.8 116 678.8 DL 124 678.8 120
+678.8 DL 128 678.8 124 678.8 DL 132 678.8 128 678.8 DL 136 678.8 132
+678.8 DL 140 678.8 136 678.8 DL 144 678.8 140 678.8 DL 148 678.8 144
+678.8 DL 152 678.8 148 678.8 DL 156 678.8 152 678.8 DL 160 678.8 156
+678.8 DL 164 678.8 160 678.8 DL 168 678.8 164 678.8 DL 172 678.8 168
+678.8 DL 176 678.8 172 678.8 DL 180 678.8 176 678.8 DL 184 678.8 180
+678.8 DL 188 678.8 184 678.8 DL 192 678.8 188 678.8 DL 196 678.8 192
+678.8 DL 200 678.8 196 678.8 DL 204 678.8 200 678.8 DL 208 678.8 204
+678.8 DL 212 678.8 208 678.8 DL 216 678.8 212 678.8 DL/F4 5
+/Times-Roman@0 SF(20)93.6 689.2 Q/F5 8/Times-Roman@0 SF(N.B.: the)3.2 I
+/F6 8/Times-Bold@0 SF(nor)2 E(eceipts)-.144 E F5(\215ag turns of)2 E 2
+(fs)-.2 G(upport for RFC 1891 \(Deli)-2 E -.12(ve)-.2 G
(ry Status Noti\214cation\).).12 E 0 Cg EP
%%Page: 74 70
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Bold@0 SF 193.36(SMM:08-74 Sendmail)72 60 R
-(Installation and Operation Guide)2.5 E/F1 10/Times-Italic@0 SF(string)
-174 96 Q/F2 10/Times-Roman@0 SF(will be macro processed.)2.5 E
-(QueueDirectory=)102 112.2 Q F1(dir)A F2 .583
-([Q] The QueueDirectory option serv)174 124.2 R .584(es tw)-.15 F 3.084
+(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(ProcessT)
+102 96 Q(itlePre\214x=)-.35 E/F2 10/Times-Italic@0 SF(string)A F1 1.196
+([no short name] Pre\214x the process title sho)174 108 R 1.195
+(wn on 'ps' listings with)-.25 F F2(string)3.695 E F1 6.195(.T)C(he)
+-6.195 E F2(string)174 120 Q F1(will be macro processed.)2.5 E
+(QueueDirectory=)102 136.2 Q F2(dir)A F1 .583
+([Q] The QueueDirectory option serv)174 148.2 R .584(es tw)-.15 F 3.084
(op)-.1 G 3.084(urposes. First,)-3.084 F .584(it speci\214es the direc-)
-3.084 F .483(tory or set of directories that comprise the def)174 136.2
+3.084 F .483(tory or set of directories that comprise the def)174 160.2
R .482(ault queue group.)-.1 F .482(Second, it speci-)5.482 F .104(\214\
es the directory D which is the ancestor of all queue directories, and \
-which send-)174 148.2 R .721(mail uses as its current w)174 160.2 R .721
+which send-)174 172.2 R .721(mail uses as its current w)174 184.2 R .721
(orking directory)-.1 F 5.721(.W)-.65 G .721
(hen sendmail dumps core, it lea)-5.721 F -.15(ve)-.2 G(s).15 E 2.872
-(its core \214les in D.)174 172.2 R 2.873(There are tw)7.872 F 5.373(oc)
--.1 G 5.373(ases. If)-5.373 F F1(dir)5.373 E F2 2.873
-(ends with an asterisk \(e)5.373 F(g,)-.15 E F1(/var/spool/mqueue/qd*)
-174 184.2 Q F2 .253
+(its core \214les in D.)174 196.2 R 2.873(There are tw)7.872 F 5.373(oc)
+-.1 G 5.373(ases. If)-5.373 F F2(dir)5.373 E F1 2.873
+(ends with an asterisk \(e)5.373 F(g,)-.15 E F2(/var/spool/mqueue/qd*)
+174 208.2 Q F1 .253
(\), then all of the directories or symbolic links to directories)B(be)
-174 196.2 Q .432(ginning with `qd' in)-.15 F F1(/var/spool/mqueue)2.932
-E F2 .433(will be used as queue directories of the)2.932 F(def)174 208.2
-Q .276(ault queue group, and)-.1 F F1(/var/spool/mqueue)2.776 E F2 .275
+174 220.2 Q .432(ginning with `qd' in)-.15 F F2(/var/spool/mqueue)2.932
+E F1 .433(will be used as queue directories of the)2.932 F(def)174 232.2
+Q .276(ault queue group, and)-.1 F F2(/var/spool/mqueue)2.776 E F1 .275
(will be used as the w)2.776 F .275(orking directory)-.1 F 2.82
-(D. Otherwise,)174 220.2 R F1(dir)2.82 E F2 .32
-(must name a directory \(usually)2.82 F F1(/var/spool/mqueue)2.82 E F2
+(D. Otherwise,)174 244.2 R F2(dir)2.82 E F1 .32
+(must name a directory \(usually)2.82 F F2(/var/spool/mqueue)2.82 E F1
.32(\): the def)B(ault)-.1 E .545
-(queue group consists of the single queue directory)174 232.2 R F1(dir)
-3.045 E F2 3.045(,a)C .545(nd the w)-3.045 F .545(orking directory)-.1 F
-2.5(Di)174 244.2 S 2.5(ss)-2.5 G(et to)-2.5 E F1(dir)2.5 E F2 5.001(.T)C
+(queue group consists of the single queue directory)174 256.2 R F2(dir)
+3.045 E F1 3.045(,a)C .545(nd the w)-3.045 F .545(orking directory)-.1 F
+2.5(Di)174 268.2 S 2.5(ss)-2.5 G(et to)-2.5 E F2(dir)2.5 E F1 5.001(.T)C
2.501(od)-5.801 G .001
(e\214ne additional groups of queue directories, use the con\214gura-)
--2.501 F .746(tion \214le `Q' command.)174 256.2 R .746
+-2.501 F .746(tion \214le `Q' command.)174 280.2 R .746
(Do not change the queue directory structure while send-)5.746 F
-(mail is running.)174 268.2 Q(QueueF)102 284.4 Q(actor=)-.15 E F1
-(factor)A F2 .613([q] Use)174 296.4 R F1(factor)3.113 E F2 .613
+(mail is running.)174 292.2 Q(QueueF)102 308.4 Q(actor=)-.15 E F2
+(factor)A F1 .613([q] Use)174 320.4 R F2(factor)3.113 E F1 .613
(as the multiplier in the map function to decide when to just queue)
-3.113 F .415(up jobs rather than run them.)174 308.4 R .415(This v)5.415
+3.113 F .415(up jobs rather than run them.)174 332.4 R .415(This v)5.415
F .415(alue is di)-.25 F .415(vided by the dif)-.25 F .415
-(ference between the)-.25 F 1.003(current load a)174 320.4 R -.15(ve)-.2
+(ference between the)-.25 F 1.003(current load a)174 344.4 R -.15(ve)-.2
G 1.003(rage and the load a).15 F -.15(ve)-.2 G 1.004(rage limit \().15
-F F0(QueueLA)A F2 1.004(option\) to determine)3.504 F
-(the maximum message priority that will be sent.)174 332.4 Q(Def)5 E
-(aults to 600000.)-.1 E(QueueLA=)102 348.6 Q F1(LA)A F2 1.087
+F F0(QueueLA)A F1 1.004(option\) to determine)3.504 F
+(the maximum message priority that will be sent.)174 356.4 Q(Def)5 E
+(aults to 600000.)-.1 E(QueueLA=)102 372.6 Q F2(LA)A F1 1.087
([x] When the system load a)15.26 F -.15(ve)-.2 G 1.087(rage e).15 F
-(xceeds)-.15 E F1(LA)3.587 E F2 1.086(and the)3.587 F F0(QueueF)3.586 E
-(actor)-.25 E F2(\()3.586 E F0(q)A F2 3.586(\)o)C(ption)-3.586 E(di)174
-360.6 Q 1.465(vided by the dif)-.25 F 1.465
+(xceeds)-.15 E F2(LA)3.587 E F1 1.086(and the)3.587 F F0(QueueF)3.586 E
+(actor)-.25 E F1(\()3.586 E F0(q)A F1 3.586(\)o)C(ption)-3.586 E(di)174
+384.6 Q 1.465(vided by the dif)-.25 F 1.465
(ference in the current load a)-.25 F -.15(ve)-.2 G 1.465(rage and the)
-.15 F F0(QueueLA)3.965 E F2(option)3.965 E .769(plus one is less than t\
-he priority of the message, just queue messages \(i.e., don')174 372.6 R
-(t)-.18 E .247(try to send them\).)174 384.6 R(Def)5.247 E .247
+.15 F F0(QueueLA)3.965 E F1(option)3.965 E .769(plus one is less than t\
+he priority of the message, just queue messages \(i.e., don')174 396.6 R
+(t)-.18 E .247(try to send them\).)174 408.6 R(Def)5.247 E .247
(aults to 8 multiplied by the number of processors online on)-.1 F
-(the system \(if that can be determined\).)174 396.6 Q(QueueFileMode=)
-102 412.8 Q F1(mode)A F2 .962([no short name] Def)174 424.8 R .962
+(the system \(if that can be determined\).)174 420.6 Q(QueueFileMode=)
+102 436.8 Q F2(mode)A F1 .962([no short name] Def)174 448.8 R .962
(ault permissions for queue \214les \(octal\).)-.1 F .961
(If not set, sendmail)5.961 F .212(uses 0600 unless its real and ef)174
-436.8 R(fecti)-.25 E .513 -.15(ve u)-.25 H .213(id are dif).15 F .213
-(ferent in which case it uses 0644.)-.25 F(QueueSortOrder=)102 453 Q F1
-(algorithm)A F2 .097([no short name] Sets the)174 465 R F1(algorithm)
-2.597 E F2 .096(used for sorting the queue.)2.597 F .096
-(Only the \214rst char)5.096 F(-)-.2 E 1.021(acter of the v)174 477 R
+460.8 R(fecti)-.25 E .513 -.15(ve u)-.25 H .213(id are dif).15 F .213
+(ferent in which case it uses 0644.)-.25 F(QueueSortOrder=)102 477 Q F2
+(algorithm)A F1 .097([no short name] Sets the)174 489 R F2(algorithm)
+2.597 E F1 .096(used for sorting the queue.)2.597 F .096
+(Only the \214rst char)5.096 F(-)-.2 E 1.021(acter of the v)174 501 R
1.021(alue is used.)-.25 F(Le)6.021 E -.05(ga)-.15 G 3.521(lv).05 G
1.021(alues are \231host\232 \(to order by the name of the)-3.771 F 1.73
(\214rst host name of the \214rst recipient\), \231\214lename\232 \(to \
-order by the name of the)174 489 R .283(queue \214le name\), \231time\
+order by the name of the)174 513 R .283(queue \214le name\), \231time\
\232 \(to order by the submission/creation time\), \231random\232 \(to)
-174 501 R .906(order randomly\), \231modi\214cation\232 \(to order by t\
-he modi\214cation time of the qf \214le)174 513 R 1.349(\(older entries\
+174 525 R .906(order randomly\), \231modi\214cation\232 \(to order by t\
+he modi\214cation time of the qf \214le)174 537 R 1.349(\(older entries\
\214rst\)\), \231none\232 \(to not order\), and \231priority\232 \(to \
-order by message)174 525 R 2.528(priority\). Host)174 537 R .028
+order by message)174 549 R 2.528(priority\). Host)174 561 R .028
(ordering mak)2.528 F .028(es better use of the connection cache, b)-.1
-F .027(ut may tend to)-.2 F .322(process lo)174 549 R 2.822(wp)-.25 G
+F .027(ut may tend to)-.2 F .322(process lo)174 573 R 2.822(wp)-.25 G
.322(riority messages that go to a single host o)-2.822 F -.15(ve)-.15 G
2.823(rh).15 G .323(igh priority messages)-2.823 F 1.825(that go to se)
-174 561 R -.15(ve)-.25 G 1.825(ral hosts; it probably shouldn').15 F
+174 585 R -.15(ve)-.25 G 1.825(ral hosts; it probably shouldn').15 F
4.325(tb)-.18 G 4.324(eu)-4.325 G 1.824(sed on slo)-4.324 F 4.324(wn)
-.25 G(etw)-4.324 E 1.824(ork links.)-.1 F .614
-(Filename and modi\214cation time ordering sa)174 573 R -.15(ve)-.2 G
+(Filename and modi\214cation time ordering sa)174 597 R -.15(ve)-.2 G
3.114(st).15 G .614(he o)-3.114 F -.15(ve)-.15 G .614
(rhead of reading all of the).15 F .671
-(queued items before starting the queue run.)174 585 R .671
+(queued items before starting the queue run.)174 609 R .671
(Creation \(submission\) time ordering)5.671 F 1.854(is almost al)174
-597 R -.1(wa)-.1 G 1.854(ys a bad idea, since it allo).1 F 1.854(ws lar)
+621 R -.1(wa)-.1 G 1.854(ys a bad idea, since it allo).1 F 1.854(ws lar)
-.25 F 1.854(ge, b)-.18 F 1.854(ulk mail to go out before)-.2 F(smaller)
-174 609 Q 3.714(,p)-.4 G 1.214(ersonal mail, b)-3.714 F 1.214(ut may ha)
+174 633 Q 3.714(,p)-.4 G 1.214(ersonal mail, b)-3.714 F 1.214(ut may ha)
-.2 F 1.513 -.15(ve a)-.2 H 1.213(pplicability on some hosts with v).15
-F 1.213(ery f)-.15 F(ast)-.1 E 2.631(connections. Random)174 621 R .131
+F 1.213(ery f)-.15 F(ast)-.1 E 2.631(connections. Random)174 645 R .131
(is useful if se)2.631 F -.15(ve)-.25 G .132
(ral queue runners are started by hand which).15 F .39
-(try to drain the same queue since odds are the)174 633 R 2.889(yw)-.15
+(try to drain the same queue since odds are the)174 657 R 2.889(yw)-.15
G .389(ill be w)-2.889 F .389(orking on dif)-.1 F .389(ferent parts)-.25
-F(of the queue at the same time.)174 645 Q(Priority ordering is the def)
-5 E(ault.)-.1 E(QueueT)102 661.2 Q(imeout=)-.35 E F1(timeout)A F2 .355
-([T] A synon)174 673.2 R .355(ym for \231T)-.15 F 2.855
+F(of the queue at the same time.)174 669 Q(Priority ordering is the def)
+5 E(ault.)-.1 E(QueueT)102 685.2 Q(imeout=)-.35 E F2(timeout)A F1 .355
+([T] A synon)174 697.2 R .355(ym for \231T)-.15 F 2.855
(imeout.queuereturn\232. Use)-.35 F .356
-(that form instead of the \231Queue-)2.855 F -.35(Ti)174 685.2 S
-(meout\232 form.).35 E 32.83(RandFile [no)102 701.4 R 1.036(short name]\
- Name of \214le containing random data or the name of the UNIX)3.537 F
-(sock)174 713.4 Q 1.63(et if EGD is used.)-.1 F 4.131(A\()6.631 G 1.631
-(required\) pre\214x "e)-4.131 F 1.631
-(gd:" or "\214le:" speci\214es the type.)-.15 F(ST)174 725.4 Q(AR)-.93 E
-1.561
-(TTLS requires this \214lename if the compile \215ag HASURANDOMDEV is)
--.6 F 0 Cg EP
+(that form instead of the \231Queue-)2.855 F -.35(Ti)174 709.2 S
+(meout\232 form.).35 E 0 Cg EP
%%Page: 75 71
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q
-(SMM:08-75)195.86 E/F1 10/Times-Roman@0 SF
-(not set \(see sendmail/README\).)174 96 Q(Resolv)102 112.2 Q
+(SMM:08-75)195.86 E/F1 10/Times-Roman@0 SF 32.83(RandFile [no)102 96 R
+1.036(short name] Name of \214le containing random data or the name of \
+the UNIX)3.537 F(sock)174 108 Q 1.63(et if EGD is used.)-.1 F 4.131(A\()
+6.631 G 1.631(required\) pre\214x "e)-4.131 F 1.631
+(gd:" or "\214le:" speci\214es the type.)-.15 F(ST)174 120 Q(AR)-.93 E
+1.561
+(TTLS requires this \214lename if the compile \215ag HASURANDOMDEV is)
+-.6 F(not set \(see sendmail/README\).)174 132 Q(Resolv)102 148.2 Q
(erOptions=)-.15 E/F2 10/Times-Italic@0 SF(options)A F1 .127
-([I] Set resolv)174 124.2 R .127(er options.)-.15 F -1.11(Va)5.127 G
+([I] Set resolv)174 160.2 R .127(er options.)-.15 F -1.11(Va)5.127 G
.127(lues can be set using)1.11 F F0(+)2.627 E F2<8d61>A(g)-.1 E F1 .127
(and cleared using)2.627 F F0<ad>2.628 E F2<8d61>A(g)-.1 E F1 2.628(;t)C
-(he)-2.628 E F2<8d61>174 136.2 Q(g)-.1 E F1 5.014(sc)C 2.514
+(he)-2.628 E F2<8d61>174 172.2 Q(g)-.1 E F1 5.014(sc)C 2.514
(an be \231deb)-5.014 F 2.513(ug\232, \231aaonly\232, \231use)-.2 F
2.513(vc\232, \231primary\232, \231igntc\232, \231recurse\232, \231def-)
-.25 F 2.688
(names\232, \231stayopen\232, \231use_inet6\232, or \231dnsrch\232.)174
-148.2 R 2.689(The string \231HasW)7.689 F(ildcardMX\232)-.4 E .283
-(\(without a)174 160.2 R F0(+)2.783 E F1(or)2.783 E F0<ad>2.783 E F1
+184.2 R 2.689(The string \231HasW)7.689 F(ildcardMX\232)-.4 E .283
+(\(without a)174 196.2 R F0(+)2.783 E F1(or)2.783 E F0<ad>2.783 E F1
2.783(\)c)C .283(an be speci\214ed to turn of)-2.783 F 2.782(fm)-.25 G
.282(atching ag)-2.782 F .282(ainst MX records when)-.05 F .89
-(doing name canoni\214cations.)174 172.2 R .89(The string \231W)5.89 F
-(orkAroundBrok)-.8 E .89(enAAAA\232 \(without a)-.1 F F0(+)174 184.2 Q
+(doing name canoni\214cations.)174 208.2 R .89(The string \231W)5.89 F
+(orkAroundBrok)-.8 E .89(enAAAA\232 \(without a)-.1 F F0(+)174 220.2 Q
F1(or)3.473 E F0<ad>3.473 E F1 3.473(\)c)C .972(an be speci\214ed to w)
-3.473 F .972(ork around some brok)-.1 F .972(en nameserv)-.1 F .972
-(ers which return)-.15 F(SER)174 196.2 Q(VF)-.8 E 1.001
+(ers which return)-.15 F(SER)174 232.2 Q(VF)-.8 E 1.001
(AIL \(a temporary f)-.74 F 1.001(ailure\) on T_AAAA \(IPv6\) lookups.)
-.1 F 1.001(Notice: it might)6.001 F
-(be necessary to apply the same \(or similar\) options to)174 208.2 Q F2
-(submit.cf)2.5 E F1(too.)2.5 E -1.04(RequiresDirfsync [no)102 224.4 R
+(be necessary to apply the same \(or similar\) options to)174 244.2 Q F2
+(submit.cf)2.5 E F1(too.)2.5 E -1.04(RequiresDirfsync [no)102 260.4 R
2.782(short name] This option can be used to o)5.283 F -.15(ve)-.15 G
-2.782(rride the compile time \215ag).15 F F0(REQ)174 236.4 Q
+2.782(rride the compile time \215ag).15 F F0(REQ)174 272.4 Q
(UIRES_DIR_FSYNC)-.1 E F1 .871(at runtime by setting it to)3.371 F/F3 9
/Times-Roman@0 SF -.09(fa)3.372 G(lse).09 E F1 5.872(.I)C 3.372(ft)
-5.872 G .872(he compile time)-3.372 F .018
-(\215ag is not set, the option is ignored.)174 248.4 R .017
+(\215ag is not set, the option is ignored.)174 284.4 R .017
(The \215ag turns on support for \214le systems that)5.018 F .209
-(require to call)174 260.4 R F2(fsync\(\))2.709 E F1 .209
+(require to call)174 296.4 R F2(fsync\(\))2.709 E F1 .209
(for a directory if the meta-data in it has been changed.)2.709 F(This)
-5.21 E .075(should be turned on at least for older v)174 272.4 R .074
+5.21 E .075(should be turned on at least for older v)174 308.4 R .074
(ersions of ReiserFS; it is enabled by def)-.15 F(ault)-.1 E 1.45
-(for Linux.)174 284.4 R 1.451
+(for Linux.)174 320.4 R 1.451
(According to some information this \215ag is not needed an)6.45 F 1.451
-(ymore for)-.15 F -.1(ke)174 296.4 S(rnel 2.4.16 and ne).1 E(wer)-.25 E
-(.)-.55 E 10.61(RrtImpliesDsn [R])102 312.6 R 1.52
+(ymore for)-.15 F -.1(ke)174 332.4 S(rnel 2.4.16 and ne).1 E(wer)-.25 E
+(.)-.55 E 10.61(RrtImpliesDsn [R])102 348.6 R 1.52
(If this option is set, a \231Return-Receipt-T)4.02 F 1.52
(o:\232 header causes the request of a)-.8 F 1.02
-(DSN, which is sent to the en)174 324.6 R -.15(ve)-.4 G 1.02
+(DSN, which is sent to the en)174 360.6 R -.15(ve)-.4 G 1.02
(lope sender as required by RFC 1891, not to the).15 F(address gi)174
-336.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(nt)-2.5 G(he header)-2.5 E(.)
--.55 E(RunAsUser=)102 352.8 Q F2(user)A F1 3.753([no short name] The)
+372.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(nt)-2.5 G(he header)-2.5 E(.)
+-.55 E(RunAsUser=)102 388.8 Q F2(user)A F1 3.753([no short name] The)
2.48 F F2(user)6.253 E F1 3.752(parameter may be a user name \(look)
-6.252 F 3.752(ed up in)-.1 F F2(/etc/passwd)174 364.8 Q F1 3.045(\)o)C
+6.252 F 3.752(ed up in)-.1 F F2(/etc/passwd)174 400.8 Q F1 3.045(\)o)C
-5.544 3.045(ra n)-3.045 H .546(umeric user id; either form can ha)
-3.045 F .846 -.15(ve \231)-.2 H .546(:group\232 attached \(where).15 F
-.966(group can be numeric or symbolic\).)174 376.8 R .965
+.966(group can be numeric or symbolic\).)174 412.8 R .965
(If set to a non-zero \(non-root\) v)5.965 F(alue,)-.25 E F2(send-)3.465
-E(mail)174 390.8 Q F1 .483
+E(mail)174 426.8 Q F1 .483
(will change to this user id shortly after startup)2.983 F/F4 7
/Times-Roman@0 SF(21)-4 I F1 5.484(.T)4 K .484(his a)-5.484 F -.2(vo)-.2
-G .484(ids a certain class).2 F 1.844(of security problems.)174 402.8 R
+G .484(ids a certain class).2 F 1.844(of security problems.)174 438.8 R
(Ho)6.844 E(we)-.25 E -.15(ve)-.25 G 2.644 -.4(r, t).15 H 1.844
(his means that all \231.forw).4 F 1.844(ard\232 and \231:include:\232)
--.1 F 1.428(\214les must be readable by the indicated)174 414.8 R F2
+-.1 F 1.428(\214les must be readable by the indicated)174 450.8 R F2
(user)3.928 E F1 1.428(and all \214les to be written must be)3.928 F
-.043(writable by)174 426.8 R F2(user)2.543 E F1 .042
+.043(writable by)174 462.8 R F2(user)2.543 E F1 .042
(Also, all \214le and program deli)2.543 F -.15(ve)-.25 G .042
(ries will be mark).15 F .042(ed unsafe unless)-.1 F 2.101(the option)
-174 438.8 R F0(DontBlameSendmail=NonRootSafeAddr)4.601 E F1 2.101
-(is set, in which case the)4.601 F(deli)174 450.8 Q -.15(ve)-.25 G .778
+174 474.8 R F0(DontBlameSendmail=NonRootSafeAddr)4.601 E F1 2.101
+(is set, in which case the)4.601 F(deli)174 486.8 Q -.15(ve)-.25 G .778
(ry will be done as).15 F F2(user)3.278 E F1 5.778(.I)C 3.277(ti)-5.778
G 3.277(sa)-3.277 G .777(lso incompatible with the)-3.277 F F0
-(SafeFileEn)3.277 E(vir)-.4 E(on-)-.18 E(ment)174 462.8 Q F1 2.62
+(SafeFileEn)3.277 E(vir)-.4 E(on-)-.18 E(ment)174 498.8 Q F1 2.62
(option. In)2.62 F .12(other w)2.62 F .121
(ords, it may not actually add much to security on an a)-.1 F -.15(ve)
--.2 G -.2(r-).15 G .593(age system, and may in f)174 474.8 R .592
+-.2 G -.2(r-).15 G .593(age system, and may in f)174 510.8 R .592
(act detract from security \(because other \214le permissions)-.1 F
-1.579(must be loosened\).)174 486.8 R(Ho)6.579 E(we)-.25 E -.15(ve)-.25
+1.579(must be loosened\).)174 522.8 R(Ho)6.579 E(we)-.25 E -.15(ve)-.25
G 2.379 -.4(r, i).15 H 4.079(ts).4 G 1.579(hould be useful on \214re)
-4.079 F -.1(wa)-.25 G 1.58(lls and other places).1 F(where users don')
-174 498.8 Q 2.5(th)-.18 G -2.25 -.2(av e)-2.5 H
+174 534.8 Q 2.5(th)-.18 G -2.25 -.2(av e)-2.5 H
(accounts and the aliases \214le is well constrained.)2.7 E(RecipientF)
-102 515 Q(actor=)-.15 E F2(fact)A F1 .638([y] The indicated)174 527 R F2
+102 551 Q(actor=)-.15 E F2(fact)A F1 .638([y] The indicated)174 563 R F2
(fact)3.137 E F1 .637(or is added to the priority \(thus)B F2(lowering)
3.137 E F1 .637(the priority of the)3.137 F .23
-(job\) for each recipient, i.e., this v)174 539 R .231
+(job\) for each recipient, i.e., this v)174 575 R .231
(alue penalizes jobs with lar)-.25 F .231(ge numbers of recipi-)-.18 F
-2.5(ents. Def)174 551 R(aults to 30000.)-.1 E(RefuseLA=)102 567.2 Q F2
+2.5(ents. Def)174 587 R(aults to 30000.)-.1 E(RefuseLA=)102 603.2 Q F2
(LA)A F1 1.012([X] When the system load a)13.59 F -.15(ve)-.2 G 1.012
(rage e).15 F(xceeds)-.15 E F2(LA)3.512 E F1 3.512(,r)C 1.011
-(efuse incoming SMTP connec-)-3.512 F 2.658(tions. Def)174 579.2 R .158
+(efuse incoming SMTP connec-)-3.512 F 2.658(tions. Def)174 615.2 R .158
(aults to 12 multiplied by the number of processors online on the syste\
-m)-.1 F(\(if that can be determined\).)174 591.2 Q(RejectLogInterv)102
-607.4 Q(al=)-.25 E F2(timeout)A F1 1.628([no short name] Log interv)174
-619.4 R 1.627(al when refusing connections for this long \(def)-.25 F
-(ault:)-.1 E(3h\).)174 631.4 Q(RetryF)102 647.6 Q(actor=)-.15 E F2(fact)
-A F1 .771([Z] The)3.74 F F2(fact)3.271 E F1 .771
-(or is added to the priority e)B -.15(ve)-.25 G .772
-(ry time a job is processed.).15 F .772(Thus, each)5.772 F .994(time a \
-job is processed, its priority will be decreased by the indicated v)174
-659.6 R 3.493(alue. In)-.25 F 1.107(most en)174 671.6 R 1.107
-(vironments this should be positi)-.4 F -.15(ve)-.25 G 3.608(,s).15 G
-1.108(ince hosts that are do)-3.608 F 1.108(wn are all too)-.25 F .32 LW
-76 681.2 72 681.2 DL 80 681.2 76 681.2 DL 84 681.2 80 681.2 DL 88 681.2
-84 681.2 DL 92 681.2 88 681.2 DL 96 681.2 92 681.2 DL 100 681.2 96 681.2
-DL 104 681.2 100 681.2 DL 108 681.2 104 681.2 DL 112 681.2 108 681.2 DL
-116 681.2 112 681.2 DL 120 681.2 116 681.2 DL 124 681.2 120 681.2 DL 128
-681.2 124 681.2 DL 132 681.2 128 681.2 DL 136 681.2 132 681.2 DL 140
-681.2 136 681.2 DL 144 681.2 140 681.2 DL 148 681.2 144 681.2 DL 152
-681.2 148 681.2 DL 156 681.2 152 681.2 DL 160 681.2 156 681.2 DL 164
-681.2 160 681.2 DL 168 681.2 164 681.2 DL 172 681.2 168 681.2 DL 176
-681.2 172 681.2 DL 180 681.2 176 681.2 DL 184 681.2 180 681.2 DL 188
-681.2 184 681.2 DL 192 681.2 188 681.2 DL 196 681.2 192 681.2 DL 200
-681.2 196 681.2 DL 204 681.2 200 681.2 DL 208 681.2 204 681.2 DL 212
-681.2 208 681.2 DL 216 681.2 212 681.2 DL/F5 5/Times-Roman@0 SF(21)93.6
-691.6 Q/F6 8/Times-Roman@0 SF(When running as a daemon, it changes to t\
-his user after accepting a connection b)3.2 I(ut before reading an)-.16
-E(y)-.12 E F4(SMTP)2 E F6(commands.)2 E 0 Cg EP
+m)-.1 F(\(if that can be determined\).)174 627.2 Q(RejectLogInterv)102
+643.4 Q(al=)-.25 E F2(timeout)A F1 1.628([no short name] Log interv)174
+655.4 R 1.627(al when refusing connections for this long \(def)-.25 F
+(ault:)-.1 E(3h\).)174 667.4 Q .32 LW 76 678.8 72 678.8 DL 80 678.8 76
+678.8 DL 84 678.8 80 678.8 DL 88 678.8 84 678.8 DL 92 678.8 88 678.8 DL
+96 678.8 92 678.8 DL 100 678.8 96 678.8 DL 104 678.8 100 678.8 DL 108
+678.8 104 678.8 DL 112 678.8 108 678.8 DL 116 678.8 112 678.8 DL 120
+678.8 116 678.8 DL 124 678.8 120 678.8 DL 128 678.8 124 678.8 DL 132
+678.8 128 678.8 DL 136 678.8 132 678.8 DL 140 678.8 136 678.8 DL 144
+678.8 140 678.8 DL 148 678.8 144 678.8 DL 152 678.8 148 678.8 DL 156
+678.8 152 678.8 DL 160 678.8 156 678.8 DL 164 678.8 160 678.8 DL 168
+678.8 164 678.8 DL 172 678.8 168 678.8 DL 176 678.8 172 678.8 DL 180
+678.8 176 678.8 DL 184 678.8 180 678.8 DL 188 678.8 184 678.8 DL 192
+678.8 188 678.8 DL 196 678.8 192 678.8 DL 200 678.8 196 678.8 DL 204
+678.8 200 678.8 DL 208 678.8 204 678.8 DL 212 678.8 208 678.8 DL 216
+678.8 212 678.8 DL/F5 5/Times-Roman@0 SF(21)93.6 689.2 Q/F6 8
+/Times-Roman@0 SF(When running as a daemon, it changes to this user aft\
+er accepting a connection b)3.2 I(ut before reading an)-.16 E(y)-.12 E
+F4(SMTP)2 E F6(commands.)2 E 0 Cg EP
%%Page: 76 72
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Bold@0 SF 193.36(SMM:08-76 Sendmail)72 60 R
-(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(often do)
-174 96 Q(wn for a long time.)-.25 E(Def)5 E(aults to 90000.)-.1 E
-(SafeFileEn)102 112.2 Q(vironment=)-.4 E/F2 10/Times-Italic@0 SF(dir)A
-F1 .022([no short name] If this option is set,)174 124.2 R F2(sendmail)
-2.521 E F1 .021(will do a)2.521 F F2 -.15(ch)2.521 G -.45(ro).15 G(ot)
-.45 E F1 .021(\(2\) call into the indi-)B(cated)174 136.2 Q F2(dir)2.832
-E F1 .333(ectory before doing an)B 2.833<798c>-.15 G .333(le writes.)
--2.833 F .333(If the \214le name speci\214ed by the user)5.333 F(be)174
-148.2 Q .588(gins with)-.15 F F2(dir)3.088 E F1 3.087(,t)C .587
+(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(RetryF)
+102 96 Q(actor=)-.15 E/F2 10/Times-Italic@0 SF(fact)A F1 .771([Z] The)
+3.74 F F2(fact)3.271 E F1 .771(or is added to the priority e)B -.15(ve)
+-.25 G .772(ry time a job is processed.).15 F .772(Thus, each)5.772 F
+.994(time a job is processed, its priority will be decreased by the ind\
+icated v)174 108 R 3.493(alue. In)-.25 F 1.107(most en)174 120 R 1.107
+(vironments this should be positi)-.4 F -.15(ve)-.25 G 3.608(,s).15 G
+1.108(ince hosts that are do)-3.608 F 1.108(wn are all too)-.25 F
+(often do)174 132 Q(wn for a long time.)-.25 E(Def)5 E(aults to 90000.)
+-.1 E(SafeFileEn)102 148.2 Q(vironment=)-.4 E F2(dir)A F1 .022
+([no short name] If this option is set,)174 160.2 R F2(sendmail)2.521 E
+F1 .021(will do a)2.521 F F2 -.15(ch)2.521 G -.45(ro).15 G(ot).45 E F1
+.021(\(2\) call into the indi-)B(cated)174 172.2 Q F2(dir)2.832 E F1
+.333(ectory before doing an)B 2.833<798c>-.15 G .333(le writes.)-2.833 F
+.333(If the \214le name speci\214ed by the user)5.333 F(be)174 184.2 Q
+.588(gins with)-.15 F F2(dir)3.088 E F1 3.087(,t)C .587
(hat partial path name will be stripped of)-3.087 F 3.087(fb)-.25 G .587
-(efore writing, so \(for)-3.087 F -.15(ex)174 160.2 S 2.224
+(efore writing, so \(for)-3.087 F -.15(ex)174 196.2 S 2.224
(ample\) if the SafeFileEn).15 F 2.224(vironment v)-.4 F 2.225
(ariable is set to \231/safe\232 then aliases of)-.25 F 1.557(\231/safe\
/logs/\214le\232 and \231/logs/\214le\232 actually indicate the same \
-\214le.)174 172.2 R(Additionally)6.556 E 4.056(,i)-.65 G(f)-4.056 E
-(this option is set,)174 184.2 Q F2(sendmail)2.5 E F1(refuses to deli)
+\214le.)174 208.2 R(Additionally)6.556 E 4.056(,i)-.65 G(f)-4.056 E
+(this option is set,)174 220.2 Q F2(sendmail)2.5 E F1(refuses to deli)
2.5 E -.15(ve)-.25 G 2.5(rt).15 G 2.5(os)-2.5 G(ymbolic links.)-2.5 E
-(Sa)102 200.4 Q -.15(ve)-.2 G 10.41(FromLine [f]).15 F(Sa)4.492 E 2.292
+(Sa)102 236.4 Q -.15(ve)-.2 G 10.41(FromLine [f]).15 F(Sa)4.492 E 2.292
-.15(ve U)-.2 H 1.992
(NIX-style \231From\232 lines at the front of headers.).15 F 1.993
(Normally the)6.993 F 4.493(ya)-.15 G(re)-4.493 E
-(assumed redundant and discarded.)174 212.4 Q .62(SendMimeErrors [j])102
-228.6 R .373(If set, send error messages in MIME format \(see RFC 2045 \
-and RFC 1344 for)2.874 F 2.914(details\). If)174 240.6 R(disabled,)2.914
+(assumed redundant and discarded.)174 248.4 Q .62(SendMimeErrors [j])102
+264.6 R .373(If set, send error messages in MIME format \(see RFC 2045 \
+and RFC 1344 for)2.874 F 2.914(details\). If)174 276.6 R(disabled,)2.914
E F2(sendmail)2.914 E F1 .415(will not return the DSN k)2.914 F -.15(ey)
-.1 G -.1(wo).15 G .415(rd in response to an).1 F 1.731
-(EHLO and will not do Deli)174 252.6 R -.15(ve)-.25 G 1.731
+(EHLO and will not do Deli)174 288.6 R -.15(ve)-.25 G 1.731
(ry Status Noti\214cation processing as described in).15 F(RFC 1891.)174
-264.6 Q(Serv)102 280.8 Q 10.77(erCertFile [no)-.15 F .581
+300.6 Q(Serv)102 316.8 Q 10.77(erCertFile [no)-.15 F .581
(short name] File containing the certi\214cate of the serv)3.08 F(er)
-.15 E 3.081(,i)-.4 G .581(.e., this certi\214cate is)-3.081 F
-(used when sendmail acts as serv)174 292.8 Q(er \(used for ST)-.15 E(AR)
--.93 E(TTLS\).)-.6 E(Serv)102 309 Q(erK)-.15 E -.15(ey)-.25 G 11.73
+(used when sendmail acts as serv)174 328.8 Q(er \(used for ST)-.15 E(AR)
+-.93 E(TTLS\).)-.6 E(Serv)102 345 Q(erK)-.15 E -.15(ey)-.25 G 11.73
(File [no).15 F .543(short name] File containing the pri)3.043 F -.25
(va)-.25 G .542(te k).25 F .842 -.15(ey b)-.1 H .542
(elonging to the serv).15 F .542(er certi\214cate)-.15 F(\(used for ST)
-174 321 Q(AR)-.93 E(TTLS\).)-.6 E(ServiceSwitchFile=)102 337.2 Q F2
+174 357 Q(AR)-.93 E(TTLS\).)-.6 E(ServiceSwitchFile=)102 373.2 Q F2
(\214lename)A F1 1.532([no short name] If your host operating system ha\
-s a service switch abstraction)174 349.2 R .003(\(e.g., /etc/nsswitch.c\
-onf on Solaris or /etc/svc.conf on Ultrix and DEC OSF/1\) that)174 361.2
-R .814(service will be consulted and this option is ignored.)174 373.2 R
+s a service switch abstraction)174 385.2 R .003(\(e.g., /etc/nsswitch.c\
+onf on Solaris or /etc/svc.conf on Ultrix and DEC OSF/1\) that)174 397.2
+R .814(service will be consulted and this option is ignored.)174 409.2 R
.814(Otherwise, this is the name)5.814 F 1.083(of a \214le that pro)174
-385.2 R 1.082
+421.2 R 1.082
(vides the list of methods used to implement particular services.)-.15 F
1.069(The syntax is a series of lines, each of which is a sequence of w)
-174 397.2 R 3.57(ords. The)-.1 F(\214rst)3.57 E -.1(wo)174 409.2 S 1.364
+174 433.2 R 3.57(ords. The)-.1 F(\214rst)3.57 E -.1(wo)174 445.2 S 1.364
(rd is the service name, and follo).1 F 1.363(wing w)-.25 F 1.363
-(ords are service types.)-.1 F 1.363(The services)6.363 F(that)174 421.2
+(ords are service types.)-.1 F 1.363(The services)6.363 F(that)174 457.2
Q F2(sendmail)4.11 E F1 1.61
(consults directly are \231aliases\232 and \231hosts.)4.11 F 6.61<9a53>
-.7 G 1.61(ervice types can be)-6.61 F 1.755(\231dns\232, \231nis\232, \
-\231nisplus\232, or \231\214les\232 \(with the ca)174 433.2 R -.15(ve)
+\231nisplus\232, or \231\214les\232 \(with the ca)174 469.2 R -.15(ve)
-.2 G 1.754(at that the appropriate support).15 F .791
-(must be compiled in before the service can be referenced\).)174 445.2 R
+(must be compiled in before the service can be referenced\).)174 481.2 R
.791(If ServiceSwitchFile)5.791 F .925(is not speci\214ed, it def)174
-457.2 R .925(aults to /etc/mail/service.switch.)-.1 F .925
-(If that \214le does not e)5.925 F(xist,)-.15 E(the def)174 469.2 Q
-(ault switch is:)-.1 E 54.71(aliases \214les)214 485.4 R 60.81
-(hosts dns)214 497.4 R(nis \214les)2.5 E(The def)174 513.6 Q
-(ault \214le is \231/etc/mail/service.switch\232.)-.1 E(Se)102 529.8 Q
+493.2 R .925(aults to /etc/mail/service.switch.)-.1 F .925
+(If that \214le does not e)5.925 F(xist,)-.15 E(the def)174 505.2 Q
+(ault switch is:)-.1 E 54.71(aliases \214les)214 521.4 R 60.81
+(hosts dns)214 533.4 R(nis \214les)2.5 E(The def)174 549.6 Q
+(ault \214le is \231/etc/mail/service.switch\232.)-.1 E(Se)102 565.8 Q
-.15(ve)-.25 G 12.12(nBitInput [7]).15 F .321(Strip input to se)2.821 F
-.15(ve)-.25 G 2.821(nb).15 G .322
(its for compatibility with old systems.)-2.821 F .322(This shouldn')
-5.322 F 2.822(tb)-.18 G(e)-2.822 E(necessary)174 541.8 Q(.)-.65 E
-(SharedMemoryK)102 558 Q -.15(ey)-.25 G .745([no short name] K)174 570 R
+5.322 F 2.822(tb)-.18 G(e)-2.822 E(necessary)174 577.8 Q(.)-.65 E
+(SharedMemoryK)102 594 Q -.15(ey)-.25 G .745([no short name] K)174 606 R
1.045 -.15(ey t)-.25 H 3.245(ou).15 G .745(se for shared memory se)
-3.245 F .744(gment; if not set \(or 0\), shared)-.15 F 1.159
-(memory will not be used.)174 582 R 1.159(If set to -1)6.159 F F2
+(memory will not be used.)174 618 R 1.159(If set to -1)6.159 F F2
(sendmail)3.659 E F1 1.16(can select a k)3.659 F 1.46 -.15(ey i)-.1 H
-1.16(tself pro).15 F(vided)-.15 E .658(that also)174 594 R F0(Shar)3.158
+1.16(tself pro).15 F(vided)-.15 E .658(that also)174 630 R F0(Shar)3.158
E(edMemoryK)-.18 E(eyFile)-.25 E F1 .658(is set.)3.158 F .658
(Requires support for shared memory to)5.658 F 1.412(be compiled into)
-174 606 R F2(sendmail)3.912 E F1 6.412(.I)C 3.912(ft)-6.412 G 1.412
+174 642 R F2(sendmail)3.912 E F1 6.412(.I)C 3.912(ft)-6.412 G 1.412
(his option is set,)-3.912 F F2(sendmail)3.912 E F1 1.413
-(can share some data)3.913 F .308(between dif)174 618 R .308
+(can share some data)3.913 F .308(between dif)174 654 R .308
(ferent instances.)-.25 F -.15(Fo)5.308 G 2.808(re).15 G .307
(xample, the number of entries in a queue direc-)-2.958 F .032
-(tory or the a)174 630 R -.25(va)-.2 G .032
+(tory or the a)174 666 R -.25(va)-.2 G .032
(ilable space in a \214le system.).25 F .032(This allo)5.032 F .032
-(ws for more ef)-.25 F .033(\214cient program)-.25 F -.15(exe)174 642 S
+(ws for more ef)-.25 F .033(\214cient program)-.25 F -.15(exe)174 678 S
.09(cution, since only one process needs to update the data instead of \
-each indi).15 F(vid-)-.25 E(ual process g)174 654 Q
+each indi).15 F(vid-)-.25 E(ual process g)174 690 Q
(athering the data each time it is required.)-.05 E(SharedMemoryK)102
-670.2 Q -.15(ey)-.25 G(File).15 E .086([no short name] If)174 682.2 R F0
+706.2 Q -.15(ey)-.25 G(File).15 E .086([no short name] If)174 718.2 R F0
(Shar)2.586 E(edMemoryK)-.18 E(ey)-.25 E F1 .087
-(is set to -1 then the automatically selected)2.587 F(shared memory k)
-174 694.2 Q .3 -.15(ey w)-.1 H(ill be stored in the speci\214ed \214le.)
-.15 E(SingleLineFromHeader)102 710.4 Q .959
-([no short name] If set, From: lines that ha)174 722.4 R 1.258 -.15
-(ve e)-.2 H .958(mbedded ne).15 F .958(wlines are unwrapped)-.25 F 0 Cg
-EP
+(is set to -1 then the automatically selected)2.587 F 0 Cg EP
%%Page: 77 73
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q
-(SMM:08-77)195.86 E/F1 10/Times-Roman@0 SF .242(onto one line.)174 96 R
-.243
+(SMM:08-77)195.86 E/F1 10/Times-Roman@0 SF(shared memory k)174 96 Q .3
+-.15(ey w)-.1 H(ill be stored in the speci\214ed \214le.).15 E
+(SingleLineFromHeader)102 112.2 Q .959
+([no short name] If set, From: lines that ha)174 124.2 R 1.258 -.15
+(ve e)-.2 H .958(mbedded ne).15 F .958(wlines are unwrapped)-.25 F .242
+(onto one line.)174 136.2 R .243
(This is to get around a botch in Lotus Notes that apparently cannot)
-5.242 F(understand le)174 108 Q -.05(ga)-.15 G
-(lly wrapped RFC 822 headers.).05 E(SingleThreadDeli)102 124.2 Q -.15
+5.242 F(understand le)174 148.2 Q -.05(ga)-.15 G
+(lly wrapped RFC 822 headers.).05 E(SingleThreadDeli)102 164.4 Q -.15
(ve)-.25 G(ry).15 E .334
-([no short name] If set, a client machine will ne)174 136.2 R -.15(ve)
+([no short name] If set, a client machine will ne)174 176.4 R -.15(ve)
-.25 G 2.833(rt).15 G .333(ry to open tw)-2.833 F 2.833(oS)-.1 G .333
-(MTP connec-)-2.833 F 1.711(tions to a single serv)174 148.2 R 1.712
+(MTP connec-)-2.833 F 1.711(tions to a single serv)174 188.4 R 1.712
(er machine at the same time, e)-.15 F -.15(ve)-.25 G 4.212(ni).15 G
4.212(nd)-4.212 G(if)-4.212 E 1.712(ferent processes.)-.25 F .953
-(That is, if another)174 160.2 R/F2 10/Times-Italic@0 SF(sendmail)3.452
+(That is, if another)174 200.4 R/F2 10/Times-Italic@0 SF(sendmail)3.452
E F1 .952(is already talking to some host a ne)3.452 F(w)-.25 E F2
(sendmail)3.452 E F1(will)3.452 E 2.387(not open another connection.)174
-172.2 R 2.387(This property is of mix)7.387 F 2.388(ed v)-.15 F 2.388
+212.4 R 2.387(This property is of mix)7.387 F 2.388(ed v)-.15 F 2.388
(alue; although this)-.25 F .386(reduces the load on the other machine,\
- it can cause mail to be delayed \(for e)174 184.2 R(xam-)-.15 E .718
-(ple, if one)174 196.2 R F2(sendmail)3.218 E F1 .718(is deli)3.218 F
+ it can cause mail to be delayed \(for e)174 224.4 R(xam-)-.15 E .718
+(ple, if one)174 236.4 R F2(sendmail)3.218 E F1 .718(is deli)3.218 F
-.15(ve)-.25 G .718(ring a huge message, other).15 F F2(sendmail)3.219 E
F1 3.219(sw)C(on')-3.319 E 3.219(tb)-.18 G 3.219(ea)-3.219 G(ble)-3.219
-E 1.543(to send e)174 208.2 R -.15(ve)-.25 G 4.043(ns).15 G 1.543
+E 1.543(to send e)174 248.4 R -.15(ve)-.25 G 4.043(ns).15 G 1.543
(mall messages\).)-4.043 F 1.542
(Also, it requires another \214le descriptor \(for the)6.543 F .996
-(lock \214le\) per connection, so you may ha)174 220.2 R 1.297 -.15
+(lock \214le\) per connection, so you may ha)174 260.4 R 1.297 -.15
(ve t)-.2 H 3.497(or).15 G .997(educe the)-3.497 F F0
-(ConnectionCacheSize)3.497 E F1 .235(option to a)174 232.2 R -.2(vo)-.2
+(ConnectionCacheSize)3.497 E F1 .235(option to a)174 272.4 R -.2(vo)-.2
G .235(id running out of per).2 F .234(-process \214le descriptors.)-.2
-F .234(Requires the)5.234 F F0(HostSta-)2.734 E(tusDir)174 244.2 Q
-(ectory)-.18 E F1(option.)2.5 E(SmtpGreetingMessage=)102 260.4 Q F2
+F .234(Requires the)5.234 F F0(HostSta-)2.734 E(tusDir)174 284.4 Q
+(ectory)-.18 E F1(option.)2.5 E(SmtpGreetingMessage=)102 300.6 Q F2
(messa)A -.1(ge)-.1 G F1 .344
-([$e macro] The message printed when the SMTP serv)174 272.4 R .345
+([$e macro] The message printed when the SMTP serv)174 312.6 R .345
(er starts up.)-.15 F(Def)5.345 E .345(aults to \231$j)-.1 F
-(Sendmail $v ready at $b\232.)174 284.4 Q 22.28(SoftBounce If)102 300.6
+(Sendmail $v ready at $b\232.)174 324.6 Q 22.28(SoftBounce If)102 340.8
R .092(set, issue temporary errors \(4xy\) instead of permanent errors \
\(5xy\).)2.593 F .092(This can be)5.092 F .126
-(useful during testing of a ne)174 312.6 R 2.627(wc)-.25 G .127
+(useful during testing of a ne)174 352.8 R 2.627(wc)-.25 G .127
(on\214guration to a)-2.627 F -.2(vo)-.2 G .127
-(id erroneous bouncing of mails.).2 F(StatusFile=)102 328.8 Q F2(\214le)
-A F1 .524([S] Log summary statistics in the named)14.13 F F2(\214le)
-3.024 E F1 5.524(.I)C 3.023(fn)-5.524 G 3.023<6f8c>-3.023 G .523
-(le name is speci\214ed, "statis-)-3.023 F .547(tics" is used.)174 340.8
-R .547(If not set, no summary statistics are sa)5.547 F -.15(ve)-.2 G
+(id erroneous bouncing of mails.).2 F(StatusFile=)102 369 Q F2(\214le)A
+F1 .524([S] Log summary statistics in the named)14.13 F F2(\214le)3.024
+E F1 5.524(.I)C 3.023(fn)-5.524 G 3.023<6f8c>-3.023 G .523
+(le name is speci\214ed, "statis-)-3.023 F .547(tics" is used.)174 381 R
+.547(If not set, no summary statistics are sa)5.547 F -.15(ve)-.2 G
3.048(d. This).15 F .548(\214le does not gro)3.048 F(w)-.25 E(in size.)
-174 352.8 Q(It can be printed using the)5 E F2(mailstats)2.5 E F1
-(\(8\) program.)A 28.4(SuperSafe [s])102 369 R .364
+174 393 Q(It can be printed using the)5 E F2(mailstats)2.5 E F1
+(\(8\) program.)A 28.4(SuperSafe [s])102 409.2 R .364
(This option can be set to T)2.864 F .364(rue, F)-.35 F .364
(alse, Interacti)-.15 F -.15(ve)-.25 G 2.864(,o).15 G 2.864(rP)-2.864 G
(ostMilter)-2.864 E 5.364(.I)-.55 G 2.864(fs)-5.364 G .364(et to T)
--2.864 F(rue,)-.35 E F2(sendmail)174 381 Q F1 .116(will be super)2.616 F
-.116(-safe when running things, i.e., al)-.2 F -.1(wa)-.1 G .117
-(ys instantiate the queue).1 F .118(\214le, e)174 393 R -.15(ve)-.25 G
+-2.864 F(rue,)-.35 E F2(sendmail)174 421.2 Q F1 .116(will be super)2.616
+F .116(-safe when running things, i.e., al)-.2 F -.1(wa)-.1 G .117
+(ys instantiate the queue).1 F .118(\214le, e)174 433.2 R -.15(ve)-.25 G
2.618(ni).15 G 2.618(fy)-2.618 G .118
(ou are going to attempt immediate deli)-2.618 F -.15(ve)-.25 G(ry).15 E
(.)-.65 E F2(Sendmail)5.117 E F1(al)2.617 E -.1(wa)-.1 G .117
(ys instan-).1 F .087(tiates the queue \214le before returning control \
-to the client under an)174 405 R 2.588(yc)-.15 G(ircumstances.)-2.588 E
-1.3(This should really)174 417 R F2(always)3.8 E F1 1.299(be set to T)
-3.799 F 3.799(rue. The)-.35 F(Interacti)3.799 E 1.599 -.15(ve v)-.25 H
-1.299(alue has been intro-)-.1 F .221
-(duced in 8.12 and can be used together with)174 429 R F0(Deli)2.722 E
+to the client under an)174 445.2 R 2.588(yc)-.15 G(ircumstances.)-2.588
+E 1.3(This should really)174 457.2 R F2(always)3.8 E F1 1.299
+(be set to T)3.799 F 3.799(rue. The)-.35 F(Interacti)3.799 E 1.599 -.15
+(ve v)-.25 H 1.299(alue has been intro-)-.1 F .221
+(duced in 8.12 and can be used together with)174 469.2 R F0(Deli)2.722 E
-.1(ve)-.1 G(ryMode=i).1 E F1 5.222(.I)C 2.722(ts)-5.222 G .222
-(kips some syn-)-2.722 F 1.533(chronization calls which are ef)174 441 R
-(fecti)-.25 E -.15(ve)-.25 G 1.533(ly doubled in the code e).15 F -.15
-(xe)-.15 G 1.532(cution path for).15 F .335(this mode.)174 453 R .336
+(kips some syn-)-2.722 F 1.533(chronization calls which are ef)174 481.2
+R(fecti)-.25 E -.15(ve)-.25 G 1.533(ly doubled in the code e).15 F -.15
+(xe)-.15 G 1.532(cution path for).15 F .335(this mode.)174 493.2 R .336
(If set to PostMilter)5.335 F(,)-.4 E F2(sendmail)2.836 E F1 .336
-(defers synchronizing the queue \214le until)2.836 F(an)174 465 Q 3.788
-(ym)-.15 G 1.288(ilters ha)-3.788 F 1.588 -.15(ve s)-.2 H 1.287
+(defers synchronizing the queue \214le until)2.836 F(an)174 505.2 Q
+3.788(ym)-.15 G 1.288(ilters ha)-3.788 F 1.588 -.15(ve s)-.2 H 1.287
(ignaled acceptance of the message.).15 F 1.287
-(PostMilter is useful only)6.287 F(when)174 477 Q F2(sendmail)3.821 E F1
-1.321(is running as an SMTP serv)3.821 F 1.322
-(er; in all other situations it acts the)-.15 F(same as T)174 489 Q
-(rue.)-.35 E 6.16(TLSSrvOptions [no)102 505.2 R .238
+(PostMilter is useful only)6.287 F(when)174 517.2 Q F2(sendmail)3.821 E
+F1 1.321(is running as an SMTP serv)3.821 F 1.322
+(er; in all other situations it acts the)-.15 F(same as T)174 529.2 Q
+(rue.)-.35 E 6.16(TLSSrvOptions [no)102 545.4 R .238
(short name] List of options for SMTP ST)2.738 F(AR)-.93 E .237
(TTLS for the serv)-.6 F .237(er consisting of)-.15 F .18
-(single characters with interv)174 517.2 R .18
+(single characters with interv)174 557.4 R .18
(ening white space or commas.)-.15 F .18(The \215ag `)5.18 F(`V')-.74 E
-2.68('d)-.74 G(isables)-2.68 E .511(client v)174 529.2 R .511(eri\214ca\
+2.68('d)-.74 G(isables)-2.68 E .511(client v)174 569.4 R .511(eri\214ca\
tion, and hence it is not possible to use a client certi\214cate for re\
-lay-)-.15 F 2.5(ing. Currently)174 541.2 R(there are no other \215ags a)
-2.5 E -.25(va)-.2 G(ilable.).25 E -.7(Te)102 557.4 S(mpFileMode=).7 E F2
+lay-)-.15 F 2.5(ing. Currently)174 581.4 R(there are no other \215ags a)
+2.5 E -.25(va)-.2 G(ilable.).25 E -.7(Te)102 597.6 S(mpFileMode=).7 E F2
(mode)A F1 .061
-([F] The \214le mode for transcript \214les, \214les to which)174 569.4
+([F] The \214le mode for transcript \214les, \214les to which)174 609.6
R F2(sendmail)2.562 E F1(deli)2.562 E -.15(ve)-.25 G .062(rs directly)
-.15 F 2.562<2c8c>-.65 G(les)-2.562 E .61(in the)174 581.4 R F0
+.15 F 2.562<2c8c>-.65 G(les)-2.562 E .61(in the)174 621.6 R F0
(HostStatusDir)3.11 E(ectory)-.18 E F1 3.11(,a)C(nd)-3.11 E F0
(StatusFile)3.11 E F1 5.61(.I)C 3.11(ti)-5.61 G 3.11(si)-3.11 G .61
-(nterpreted in octal by def)-3.11 F(ault.)-.1 E(Def)174 593.4 Q
-(aults to 0600.)-.1 E -.35(Ti)102 609.6 S(meout.).35 E F2(type)A F1(=)A
+(nterpreted in octal by def)-3.11 F(ault.)-.1 E(Def)174 633.6 Q
+(aults to 0600.)-.1 E -.35(Ti)102 649.8 S(meout.).35 E F2(type)A F1(=)A
F2(timeout)1.666 E F1 .417
-([r; subsumes old T option as well] Set timeout v)174 621.6 R 2.917
+([r; subsumes old T option as well] Set timeout v)174 661.8 R 2.917
(alues. F)-.25 F .417(or more information, see)-.15 F(section 4.1.)174
-633.6 Q -.35(Ti)102 649.8 S(meZoneSpec=).35 E F2(tzinfo)A F1 .218
-([t] Set the local time zone info to)174 661.8 R F2(tzinfo)2.718 E F1
+673.8 Q -.35(Ti)102 690 S(meZoneSpec=).35 E F2(tzinfo)A F1 .218
+([t] Set the local time zone info to)174 702 R F2(tzinfo)2.718 E F1
2.718<8a66>2.718 G .218(or e)-2.718 F .218(xample, \231PST8PDT\232.)-.15
F(Actually)5.217 E 2.717(,i)-.65 G(f)-2.717 E 1.345
-(this is not set, the TZ en)174 673.8 R 1.346(vironment v)-.4 F 1.346
-(ariable is cleared \(so the system def)-.25 F 1.346(ault is)-.1 F .209
-(used\); if set b)174 685.8 R .208(ut null, the user')-.2 F 2.708(sT)
--.55 G 2.708(Zv)-2.708 G .208
-(ariable is used, and if set and non-null the TZ)-2.958 F -.25(va)174
-697.8 S(riable is set to this v).25 E(alue.)-.25 E 0 Cg EP
+(this is not set, the TZ en)174 714 R 1.346(vironment v)-.4 F 1.346
+(ariable is cleared \(so the system def)-.25 F 1.346(ault is)-.1 F 0 Cg
+EP
%%Page: 78 74
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Bold@0 SF 193.36(SMM:08-78 Sendmail)72 60 R
-(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF -.35(Tr)
-102 96 S(ustedUser=).35 E/F2 10/Times-Italic@0 SF(user)A F1 3.752
-([no short name] The).06 F F2(user)6.252 E F1 3.752
+(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF .209
+(used\); if set b)174 96 R .208(ut null, the user')-.2 F 2.708(sT)-.55 G
+2.708(Zv)-2.708 G .208(ariable is used, and if set and non-null the TZ)
+-2.958 F -.25(va)174 108 S(riable is set to this v).25 E(alue.)-.25 E
+-.35(Tr)102 124.2 S(ustedUser=).35 E/F2 10/Times-Italic@0 SF(user)A F1
+3.752([no short name] The).06 F F2(user)6.252 E F1 3.752
(parameter may be a user name \(look)6.252 F 3.753(ed up in)-.1 F F2
-(/etc/passwd)174 108 Q F1 2.743(\)o)C 2.743(ran)-2.743 G .243
+(/etc/passwd)174 136.2 Q F1 2.743(\)o)C 2.743(ran)-2.743 G .243
(umeric user id.)-2.743 F -.35(Tr)5.242 G .242(usted user for \214le o)
-.35 F .242(wnership and starting the)-.25 F 3.779(daemon. If)174 120 R
+.35 F .242(wnership and starting the)-.25 F 3.779(daemon. If)174 148.2 R
1.279(set, generated alias databases and the control sock)3.779 F 1.279
-(et \(if con\214gured\))-.1 F(will automatically be o)174 132 Q
-(wned by this user)-.25 E(.)-.55 E -.35(Tr)102 148.2 S 5.96
+(et \(if con\214gured\))-.1 F(will automatically be o)174 160.2 Q
+(wned by this user)-.25 E(.)-.55 E -.35(Tr)102 176.4 S 5.96
(yNullMXList [w]).35 F .114
(If this system is the \231best\232 \(that is, lo)2.614 F .114
(west preference\) MX for a gi)-.25 F -.15(ve)-.25 G 2.613(nh).15 G .113
(ost, its)-2.613 F 1.168(con\214guration rules should normally detect t\
-his situation and treat that condition)174 160.2 R .258
-(specially by forw)174 172.2 R .258
+his situation and treat that condition)174 188.4 R .258
+(specially by forw)174 200.4 R .258
(arding the mail to a UUCP feed, treating it as local, or whate)-.1 F
--.15(ve)-.25 G -.55(r.).15 G(Ho)174 184.2 Q(we)-.25 E -.15(ve)-.25 G
+-.15(ve)-.25 G -.55(r.).15 G(Ho)174 212.4 Q(we)-.25 E -.15(ve)-.25 G
1.685 -.4(r, i).15 H 3.385(ns).4 G .886
(ome cases \(such as Internet \214re)-3.385 F -.1(wa)-.25 G .886
(lls\) you may w).1 F .886(ant to try to con-)-.1 F .07
(nect directly to that host as though it had no MX records at all.)174
-196.2 R .07(Setting this option)5.07 F(causes)174 208.2 Q F2(sendmail)
+224.4 R .07(Setting this option)5.07 F(causes)174 236.4 Q F2(sendmail)
3.013 E F1 .514(to try this.)3.013 F .514(The do)5.514 F .514
-(wnside is that errors in your con\214guration are)-.25 F(lik)174 220.2
+(wnside is that errors in your con\214guration are)-.25 F(lik)174 248.4
Q 2.116(ely to be diagnosed as \231host unkno)-.1 F 2.116
(wn\232 or \231message timed out\232 instead of)-.25 F
-(something more meaningful.)174 232.2 Q(This option is disrecommended.)5
-E(UnixFromLine=)102 248.4 Q F2(fr)A(omline)-.45 E F1 .236
-([$l macro] De\214nes the format used when)174 260.4 R F2(sendmail)2.736
+(something more meaningful.)174 260.4 Q(This option is disrecommended.)5
+E(UnixFromLine=)102 276.6 Q F2(fr)A(omline)-.45 E F1 .236
+([$l macro] De\214nes the format used when)174 288.6 R F2(sendmail)2.736
E F1 .236(must add a UNIX-style From_)2.736 F 1.325
-(line \(that is, a line be)174 272.4 R 1.325
+(line \(that is, a line be)174 300.6 R 1.325
(ginning \231From<space>user\232\).)-.15 F(Def)6.324 E 1.324
-(aults to \231From $g)-.1 F($d\232.)6.324 E(Don')174 284.4 Q 2.645(tc)
+(aults to \231From $g)-.1 F($d\232.)6.324 E(Don')174 312.6 Q 2.645(tc)
-.18 G .146(hange this unless your system uses a dif)-2.645 F .146
-(ferent UNIX mailbox format \(v)-.25 F(ery)-.15 E(unlik)174 296.4 Q
-(ely\).)-.1 E(UnsafeGroupWrites)102 312.6 Q .086
-([no short name] If set \(def)174 324.6 R .085
+(ferent UNIX mailbox format \(v)-.25 F(ery)-.15 E(unlik)174 324.6 Q
+(ely\).)-.1 E(UnsafeGroupWrites)102 340.8 Q .086
+([no short name] If set \(def)174 352.8 R .085
(ault\), :include: and .forw)-.1 F .085
(ard \214les that are group writable)-.1 F .654
-(are considered \231unsafe\232, that is, the)174 336.6 R 3.155(yc)-.15 G
+(are considered \231unsafe\232, that is, the)174 364.8 R 3.155(yc)-.15 G
.655(annot reference programs or write directly)-3.155 F .537
-(to \214les.)174 348.6 R -.8(Wo)5.537 G .537
+(to \214les.)174 376.8 R -.8(Wo)5.537 G .537
(rld writable :include: and .forw).8 F .537(ard \214les are al)-.1 F -.1
(wa)-.1 G .536(ys unsafe.).1 F .536(Note: use)5.536 F F0
-(DontBlameSendmail)174 360.6 Q F1(instead; this option is deprecated.)
-2.5 E(UseErrorsT)102 376.8 Q 21.15(o[)-.8 G .826
+(DontBlameSendmail)174 388.8 Q F1(instead; this option is deprecated.)
+2.5 E(UseErrorsT)102 405 Q 21.15(o[)-.8 G .826
(l] If there is an \231Errors-T)-21.15 F .826(o:\232 header)-.8 F 3.326
(,s)-.4 G .826(end error messages to the addresses listed)-3.326 F 3.135
-(there. The)174 388.8 R 3.135(yn)-.15 G .635(ormally go to the en)-3.135
-F -.15(ve)-.4 G .635(lope sender).15 F 5.635(.U)-.55 G .634
-(se of this option causes)-5.635 F F2(send-)3.134 E(mail)174 400.8 Q F1
+(there. The)174 417 R 3.135(yn)-.15 G .635(ormally go to the en)-3.135 F
+-.15(ve)-.4 G .635(lope sender).15 F 5.635(.U)-.55 G .634
+(se of this option causes)-5.635 F F2(send-)3.134 E(mail)174 429 Q F1
(to violate RFC 1123.)2.5 E
(This option is disrecommended and deprecated.)5 E(UserDatabaseSpec=)102
-417 Q F2(udbspec)A F1([U] The user database speci\214cation.)174 429 Q
--1.11(Ve)102 445.2 S 37.29(rbose [v])1.11 F .56(Run in v)3.06 F .561
+445.2 Q F2(udbspec)A F1([U] The user database speci\214cation.)174 457.2
+Q -1.11(Ve)102 473.4 S 37.29(rbose [v])1.11 F .56(Run in v)3.06 F .561
(erbose mode.)-.15 F .561(If this is set,)5.561 F F2(sendmail)3.061 E F1
.561(adjusts options)3.061 F F0(HoldExpensi)3.061 E -.1(ve)-.1 G F1
-(\(old)174 457.2 Q F0(c)2.636 E F1 2.636(\)a)C(nd)-2.636 E F0(Deli)2.636
+(\(old)174 485.4 Q F0(c)2.636 E F1 2.636(\)a)C(nd)-2.636 E F0(Deli)2.636
E -.1(ve)-.1 G(ryMode).1 E F1(\(old)2.636 E F0(d)2.636 E F1 2.635(\)s)C
2.635(ot)-2.635 G .135(hat all mail is deli)-2.635 F -.15(ve)-.25 G .135
(red completely in a sin-).15 F 1.244
-(gle job so that you can see the entire deli)174 469.2 R -.15(ve)-.25 G
+(gle job so that you can see the entire deli)174 497.4 R -.15(ve)-.25 G
1.244(ry process.).15 F(Option)6.244 E F0 -1(Ve)3.744 G(rbose)1 E F1
-(should)3.744 E F2(ne)174 481.2 Q(ver)-.15 E F1 1.269(be set in the con\
+(should)3.744 E F2(ne)174 509.4 Q(ver)-.15 E F1 1.269(be set in the con\
\214guration \214le; it is intended for command line use only)3.77 F(.)
--.65 E .435(Note that the use of option)174 493.2 R F0 -1(Ve)2.935 G
+-.65 E .435(Note that the use of option)174 521.4 R F0 -1(Ve)2.935 G
(rbose)1 E F1 .435(can cause authentication information to leak,)2.935 F
-.015(if you use a sendmail client to authenticate to a serv)174 505.2 R
+.015(if you use a sendmail client to authenticate to a serv)174 533.4 R
(er)-.15 E 5.015(.I)-.55 G 2.515(ft)-5.015 G .015
-(he authentication mech-)-2.515 F .935(anism uses plain te)174 517.2 R
+(he authentication mech-)-2.515 F .935(anism uses plain te)174 545.4 R
.936(xt passw)-.15 F .936
(ords \(as with LOGIN or PLAIN\), then the passw)-.1 F(ord)-.1 E 1.418
-(could be compromised.)174 529.2 R 3.017 -.8(To a)6.418 H -.2(vo).6 G
+(could be compromised.)174 557.4 R 3.017 -.8(To a)6.418 H -.2(vo).6 G
1.417(id this, do not install sendmail set-user).2 F 1.417(-ID root,)-.2
-F(and disable the)174 541.2 Q F0(VERB)2.5 E F1
+F(and disable the)174 569.4 Q F0(VERB)2.5 E F1
(SMTP command with a suitable)2.5 E F0(Pri)2.5 E -.1(va)-.1 G(cyOptions)
-.1 E F1(setting.)2.5 E(XscriptFileBuf)102 557.4 Q(ferSize=)-.25 E F2
-(thr)A(eshold)-.37 E F1 1.1([no short name] Set the)174 569.4 R F2(thr)
+.1 E F1(setting.)2.5 E(XscriptFileBuf)102 585.6 Q(ferSize=)-.25 E F2
+(thr)A(eshold)-.37 E F1 1.1([no short name] Set the)174 597.6 R F2(thr)
3.601 E(eshold)-.37 E F1 3.601(,i)C 3.601(nb)-3.601 G 1.101
(ytes, before a memory-based queue tran-)-3.601 F
-(script \214le becomes disk-based.)174 581.4 Q(The def)5 E
+(script \214le becomes disk-based.)174 609.6 Q(The def)5 E
(ault is 4096 bytes.)-.1 E .109(All options can be speci\214ed on the c\
-ommand line using the \255O or \255o \215ag, b)102 597.6 R .108
-(ut most will cause)-.2 F F2(send-)2.608 E(mail)102 609.6 Q F1 .663
+ommand line using the \255O or \255o \215ag, b)102 625.8 R .108
+(ut most will cause)-.2 F F2(send-)2.608 E(mail)102 637.8 Q F1 .663
(to relinquish its set-user)3.163 F .663(-ID permissions.)-.2 F .664
(The options that will not cause this are Se)5.663 F -.15(ve)-.25 G
(nBitIn-).15 E 1.319
(put [7], EightBitMode [8], MinFreeBlocks [b], CheckpointInterv)102
-621.6 R 1.319(al [C], Deli)-.25 F -.15(ve)-.25 G 1.319
+649.8 R 1.319(al [C], Deli)-.25 F -.15(ve)-.25 G 1.319
(ryMode [d], Error).15 F(-)-.2 E .042
-(Mode [e], IgnoreDots [i], SendMimeErrors [j], LogLe)102 633.6 R -.15
+(Mode [e], IgnoreDots [i], SendMimeErrors [j], LogLe)102 661.8 R -.15
(ve)-.25 G 2.543(l[).15 G .043(L], MeT)-2.543 F .043
-(oo [m], OldStyleHeaders [o], Pri-)-.8 F -.25(va)102 645.6 S -.15(cy).25
+(oo [m], OldStyleHeaders [o], Pri-)-.8 F -.25(va)102 673.8 S -.15(cy).25
G .303(Options [p], SuperSafe [s], V).15 F .302
(erbose [v], QueueSortOrder)-1.11 F 2.802(,M)-.4 G .302(inQueueAge, Def)
--2.802 F .302(aultCharSet, Dial)-.1 F(Delay)102 657.6 Q 7.312(,N)-.65 G
+-2.802 F .302(aultCharSet, Dial)-.1 F(Delay)102 685.8 Q 7.312(,N)-.65 G
4.812(oRecipientAction, ColonOkInAddr)-7.312 F 7.312(,M)-.4 G 4.812
(axQueueRunSize, SingleLineFromHeader)-7.312 F 7.312(,a)-.4 G(nd)-7.312
-E(Allo)102 669.6 Q 3.921(wBogusHELO. Actually)-.25 F 3.921(,P)-.65 G(ri)
+E(Allo)102 697.8 Q 3.921(wBogusHELO. Actually)-.25 F 3.921(,P)-.65 G(ri)
-3.921 E -.25(va)-.25 G -.15(cy).25 G 1.421(Options [p] gi).15 F -.15
(ve)-.25 G 3.921(no).15 G 3.921(nt)-3.921 G 1.421
(he command line are added to those)-3.921 F 1.697
-(already speci\214ed in the)102 681.6 R F2(sendmail.cf)4.197 E F1 1.697
+(already speci\214ed in the)102 709.8 R F2(sendmail.cf)4.197 E F1 1.697
(\214le, i.e., the)4.197 F 4.197(yc)-.15 G(an')-4.197 E 4.197(tb)-.18 G
4.197(er)-4.197 G 4.198(eset. Also,)-4.197 F 4.198(M\()4.198 G 1.698
(de\214ne macro\) when)-4.198 F
-(de\214ning the r or s macros is also considered \231safe\232.)102 693.6
+(de\214ning the r or s macros is also considered \231safe\232.)102 721.8
Q 0 Cg EP
%%Page: 79 75
%%BeginPageSetup
diff --git a/include/libmilter/mfapi.h b/include/libmilter/mfapi.h
index 8e3a17328615..3b8e7d73e24f 100644
--- a/include/libmilter/mfapi.h
+++ b/include/libmilter/mfapi.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999-2004, 2006, 2008 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1999-2004, 2006, 2008, 2012 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
@@ -7,7 +7,7 @@
* the sendmail distribution.
*
*
- * $Id: mfapi.h,v 8.80 2009/11/06 00:57:08 ca Exp $
+ * $Id: mfapi.h,v 8.82 2012/11/16 20:25:04 ca Exp $
*/
/*
@@ -96,6 +96,8 @@ typedef int sfsistat;
# ifndef bool
# ifndef __bool_true_false_are_defined
typedef int bool;
+# define false 0
+# define true 1
# define __bool_true_false_are_defined 1
# endif /* ! __bool_true_false_are_defined */
# endif /* bool */
@@ -204,6 +206,7 @@ LIBMILTER_API int smfi_version __P((unsigned int *, unsigned int *, unsigned int
** (hence the list is not sorted by the SMT protocol steps).
*/
+#define SMFIM_NOMACROS (-1) /* Do NOT use, internal only */
#define SMFIM_FIRST 0 /* Do NOT use, internal marker only */
#define SMFIM_CONNECT 0 /* connect */
#define SMFIM_HELO 1 /* HELO/EHLO */
diff --git a/include/sm/clock.h b/include/sm/clock.h
index ba7fd6891093..22ed171b2c5b 100644
--- a/include/sm/clock.h
+++ b/include/sm/clock.h
@@ -9,7 +9,7 @@
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*
- * $Id: clock.h,v 1.12 2004/08/03 19:57:21 ca Exp $
+ * $Id: clock.h,v 1.13 2011/11/03 03:13:24 ca Exp $
*/
/*
@@ -59,7 +59,7 @@ extern SIGFUNC_DECL sm_tick __P((int));
/*
** SM_SETEVENT -- set an event to happen at a specific time in seconds.
**
-** Translates the seconds into millseconds and calls sm_seteventm()
+** Translates the seconds into milliseconds and calls sm_seteventm()
** to get a specific event to happen in the future at a specific time.
**
** Parameters:
diff --git a/include/sm/tailq.h b/include/sm/tailq.h
index c8eeec4383d7..ef67a971b328 100644
--- a/include/sm/tailq.h
+++ b/include/sm/tailq.h
@@ -36,7 +36,7 @@
#define SM_TAILQ_H_
/*
- * $Id: tailq.h,v 1.2 2007/06/29 23:09:57 ca Exp $
+ * $Id: tailq.h,v 1.3 2012/01/21 00:12:14 ashish Exp $
*
* This file is a modified copy of queue.h from a BSD system:
* we only need tail queues here.
@@ -69,8 +69,8 @@ struct { \
struct type **tqe_prev; /* address of previous next element */ \
}
-/*
- * tail queue access methods
+/*
+ * tail queue access methods
*/
#define SM_TAILQ_FIRST(head) ((head)->tqh_first)
#define SM_TAILQ_END(head) NULL
diff --git a/libmilter/Makefile.m4 b/libmilter/Makefile.m4
index bc9bc66d6711..8f5da7d20fa9 100644
--- a/libmilter/Makefile.m4
+++ b/libmilter/Makefile.m4
@@ -1,4 +1,4 @@
-dnl $Id: Makefile.m4,v 8.85 2009/11/24 21:59:33 ca Exp $
+dnl $Id: Makefile.m4,v 8.88 2012/09/25 17:40:32 ca Exp $
include(confBUILDTOOLSDIR`/M4/switch.m4')
dnl only required for compilation of EXTRAS
diff --git a/libmilter/docs/api.html b/libmilter/docs/api.html
index 578e0ca686af..3c56746f030a 100644
--- a/libmilter/docs/api.html
+++ b/libmilter/docs/api.html
@@ -2,7 +2,7 @@
<HEAD><TITLE>Milter API</TITLE></HEAD>
<BODY>
<!--
-$Id: api.html,v 1.37 2009/05/19 00:40:52 ca Exp $
+$Id: api.html,v 1.38 2012/03/29 03:18:37 ca Exp $
-->
<H1>Milter API</H1>
@@ -214,7 +214,6 @@ other callbacks are message-oriented.
<TD>SMFIS_REJECT</TD>
<TD>For a connection-oriented routine, reject this connection; call <A HREF="xxfi_close.html">xxfi_close</A>.<BR>
For a message-oriented routine (except
- <A HREF="xxfi_eom.html">xxfi_eom</A> or
<A HREF="xxfi_abort.html">xxfi_abort</A>), reject this message.<BR>
For a recipient-oriented routine, reject the current recipient (but continue processing the current message).
</TD>
diff --git a/libmilter/docs/smfi_setsymlist.html b/libmilter/docs/smfi_setsymlist.html
index 7e8edff6c68f..80793f0b8226 100644
--- a/libmilter/docs/smfi_setsymlist.html
+++ b/libmilter/docs/smfi_setsymlist.html
@@ -2,7 +2,7 @@
<HEAD><TITLE>smfi_setsymlist</TITLE></HEAD>
<BODY>
<!--
-$Id: smfi_setsymlist.html,v 1.5 2006/12/21 18:30:35 ca Exp $
+$Id: smfi_setsymlist.html,v 1.6 2012/05/11 17:34:23 ca Exp $
-->
<H1>smfi_setsymlist</H1>
@@ -86,8 +86,10 @@ Otherwise MI_SUCCESS is returned.
<!----------- Notes ---------->
<TR align="left" valign=top>
<TH>NOTES</TH>
-<TD>There is an internal limit on the number of macros that can be
-set (currently 5),
+<TD>There is an internal limit on the number of macros
+that can be set
+<!-- XREF: MAXFILTERMACROS -->
+(currently 50),
however, this limit is not enforced by libmilter, only by the MTA,
but a possible violation of this restriction is not communicated back to
the milter.</TD>
@@ -97,7 +99,7 @@ the milter.</TD>
<HR size="1">
<FONT size="-1">
-Copyright (c) 2006 Sendmail, Inc. and its suppliers.
+Copyright (c) 2006, 2012 Sendmail, Inc. and its suppliers.
All rights reserved.
<BR>
By using this file, you agree to the terms and conditions set
diff --git a/libmilter/docs/smfi_settimeout.html b/libmilter/docs/smfi_settimeout.html
index 97d41cb1dd65..563149977158 100644
--- a/libmilter/docs/smfi_settimeout.html
+++ b/libmilter/docs/smfi_settimeout.html
@@ -2,7 +2,7 @@
<HEAD><TITLE>smfi_settimeout</TITLE></HEAD>
<BODY>
<!--
-$Id: smfi_settimeout.html,v 1.14 2006/12/21 18:30:35 ca Exp $
+$Id: smfi_settimeout.html,v 1.15 2011/10/03 16:21:33 ca Exp $
-->
<H1>smfi_settimeout</H1>
@@ -52,11 +52,24 @@ If smfi_settimeout is not called, a default timeout of 7210 seconds is used.
<TD>smfi_settimeout always returns MI_SUCCESS.</TD>
</TR>
+<!----------- Notes ---------->
+<TR>
+<TH valign="top" align=left>NOTES</TH>
+<TD>
+Decreasing the timeout is strongly discouraged
+and may break the communication with the MTA.
+Do <EM>not</EM> decrease this value without making sure that
+the MTA also uses lower timeouts for communication
+(with the milter and with the SMTP client).
+</TR>
+</TABLE>
+
+
</TABLE>
<HR size="1">
<FONT size="-1">
-Copyright (c) 2000, 2002-2003, 2006 Sendmail, Inc. and its suppliers.
+Copyright (c) 2000, 2002-2003, 2006, 2011 Sendmail, Inc. and its suppliers.
All rights reserved.
<BR>
By using this file, you agree to the terms and conditions set
diff --git a/libmilter/worker.c b/libmilter/worker.c
index aa1bd576829f..50e810742a07 100644
--- a/libmilter/worker.c
+++ b/libmilter/worker.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2004, 2007, 2009-2011 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 2003-2004, 2007, 2009-2012 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
@@ -11,7 +11,7 @@
*/
#include <sm/gen.h>
-SM_RCSID("@(#)$Id: worker.c,v 8.19 2011/02/14 23:33:48 ca Exp $")
+SM_RCSID("@(#)$Id: worker.c,v 8.24 2012/03/13 15:37:46 ca Exp $")
#include "libmilter.h"
@@ -141,7 +141,8 @@ static int mi_list_del_ctx __P((SMFICTX_PTR));
#if POOL_DEBUG
# define POOL_LEV_DPRINTF(lev, x) \
- do { \
+ do \
+ { \
if ((lev) < ctx->ctx_dbg) \
sm_dprintf x; \
} while (0)
@@ -377,7 +378,7 @@ mi_pool_controller(arg)
for (;;)
{
SMFICTX_PTR ctx;
- int nfd, rfd, i;
+ int nfd, r, i;
time_t now;
POOL_LEV_DPRINTF(4, ("Let's %s again...", WAITFN));
@@ -498,19 +499,19 @@ mi_pool_controller(arg)
TASKMGR_UNLOCK();
/* Everything is ready, let's wait for an event */
- rfd = poll(pfd, nfd, POLL_TIMEOUT);
+ r = poll(pfd, nfd, POLL_TIMEOUT);
POOL_LEV_DPRINTF(4, ("%s returned: at epoch %d value %d",
WAITFN, now, nfd));
/* timeout */
- if (rfd == 0)
+ if (r == 0)
continue;
rebuild_set = true;
/* error */
- if (rfd < 0)
+ if (r < 0)
{
if (errno == EINTR)
continue;
@@ -522,6 +523,7 @@ mi_pool_controller(arg)
if (pcnt >= MAX_FAILS_S)
goto err;
+ continue;
}
pcnt = 0;
@@ -535,7 +537,7 @@ mi_pool_controller(arg)
WAITFN, i, nfd,
WAIT_FD(i)));
- /* has a worker signaled an end of task ? */
+ /* has a worker signaled an end of task? */
if (WAIT_FD(i) == RD_PIPE)
{
char evts[256];
@@ -563,7 +565,12 @@ mi_pool_controller(arg)
continue;
}
- /* no ! sendmail wants to send a command */
+ /*
+ ** Not the pipe for workers waking us,
+ ** so must be something on an MTA connection.
+ */
+
+ TASKMGR_LOCK();
SM_TAILQ_FOREACH(ctx, &WRK_CTX_HEAD, ctx_link)
{
if (ctx->ctx_wstate != WKST_WAITING)
@@ -575,7 +582,6 @@ mi_pool_controller(arg)
if (ctx->ctx_sd == pfd[i].fd)
{
- TASKMGR_LOCK();
POOL_LEV_DPRINTF(4,
("TASK: found %d for fd[%d]=%d",
@@ -591,10 +597,10 @@ mi_pool_controller(arg)
ctx->ctx_wstate = WKST_RUNNING;
LAUNCH_WORKER(ctx);
}
- TASKMGR_UNLOCK();
break;
}
}
+ TASKMGR_UNLOCK();
POOL_LEV_DPRINTF(4,
("TASK %s FOUND - Checking PIPE for fd[%d]",
@@ -607,6 +613,14 @@ mi_pool_controller(arg)
free(pfd);
Tskmgr.tm_signature = 0;
+#if 0
+ /*
+ ** Do not clean up ctx -- it can cause double-free()s.
+ ** The program is shutting down anyway, so it's not worth the trouble.
+ ** There is a more complex solution that prevents race conditions
+ ** while accessing ctx, but that's maybe for a later version.
+ */
+
for (;;)
{
SMFICTX_PTR ctx;
@@ -616,6 +630,7 @@ mi_pool_controller(arg)
break;
mi_close_session(ctx);
}
+#endif
(void) smutex_destroy(&Tskmgr.tm_w_mutex);
(void) scond_destroy(&Tskmgr.tm_w_cond);
diff --git a/src/Makefile.m4 b/src/Makefile.m4
index 7bcd24d9eeb0..5908b97e6baa 100644
--- a/src/Makefile.m4
+++ b/src/Makefile.m4
@@ -1,4 +1,4 @@
-dnl $Id: Makefile.m4,v 8.126 2010/11/24 19:59:54 gshapiro Exp $
+dnl $Id: Makefile.m4,v 8.132 2012/09/11 20:02:44 ca Exp $
include(confBUILDTOOLSDIR`/M4/switch.m4')
define(`confREQUIRE_LIBSM', `true')
diff --git a/src/TRACEFLAGS b/src/TRACEFLAGS
index 6fdfdd97df1d..c3f026626b1b 100644
--- a/src/TRACEFLAGS
+++ b/src/TRACEFLAGS
@@ -1,4 +1,4 @@
-# $Id: TRACEFLAGS,v 8.48 2008/11/03 21:09:26 gshapiro Exp $
+# $Id: TRACEFLAGS,v 8.52 2012/03/03 00:10:42 ca Exp $
0, 4 main.c main canonical name, UUCP node name, a.k.a.s
0, 15 main.c main print configuration
0, 44 util.c printav print address of each string
@@ -77,12 +77,12 @@
63 queue.c runqueue process watching
64 multiple Milter
65 main.c permission checks
-#if _FFR_ADAPTIVE_EOL
-66 srvrsmtp.c conformance checks
-#endif /* _FFR_ADAPTIVE_EOL */
-#if _FFR_QUEUE_SCHED_DBG
-69 queue.c scheduling
-#endif /* _FFR_QUEUE_SCHED_DBG */
+#if _FFR_ADAPTIVE_EOL
+66 srvrsmtp.c conformance checks
+#endif /* _FFR_ADAPTIVE_EOL */
+#if _FFR_QUEUE_SCHED_DBG
+69 queue.c scheduling
+#endif /* _FFR_QUEUE_SCHED_DBG */
70 queue.c quarantining
71,>99 milter.c quarantine on errors
73 queue.c shared memory updates
@@ -92,6 +92,7 @@
83 collect.c timeout
84 deliver.c timeout
85 map.c dprintf map
+89 conf.c >=8 use sm_dprintf() instead of syslog()
91 mci.c syslogging of MCI cache information
93,>99 * Prevent daemon connection fork for profiling/debugging
94,>99 srvrsmtp.c cause commands to fail (for protocol testing)
diff --git a/src/collect.c b/src/collect.c
index f5d72477c510..c8dcb8af6cc0 100644
--- a/src/collect.c
+++ b/src/collect.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: collect.c,v 8.284 2008/08/06 05:26:24 ca Exp $")
+SM_RCSID("@(#)$Id: collect.c,v 8.285 2012/06/14 23:54:02 ca Exp $")
static void eatfrom __P((char *volatile, ENVELOPE *));
static void collect_doheader __P((ENVELOPE *));
@@ -869,7 +869,8 @@ readerr:
if (LogLevel > 6)
sm_syslog(LOG_NOTICE, e->e_id,
"message size (%ld) exceeds maximum (%ld)",
- e->e_msgsize, MaxMessageSize);
+ PRT_NONNEGL(e->e_msgsize),
+ MaxMessageSize);
}
}
diff --git a/src/conf.c b/src/conf.c
index ffc6f205c701..9130455edfdf 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2010 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: conf.c,v 8.1168 2011/01/25 18:31:30 ca Exp $")
+SM_RCSID("@(#)$Id: conf.c,v 8.1176 2012/12/07 03:59:54 ca Exp $")
#include <sm/sendmail.h>
#include <sendmail/pathnames.h>
@@ -53,7 +53,7 @@ static int add_hostnames __P((SOCKADDR *));
static struct hostent *sm_getipnodebyname __P((const char *, int, int, int *));
static struct hostent *sm_getipnodebyaddr __P((const void *, size_t, int, int *));
#else /* NETINET6 && NEEDSGETIPNODE */
-#define sm_getipnodebyname getipnodebyname
+#define sm_getipnodebyname getipnodebyname
#define sm_getipnodebyaddr getipnodebyaddr
#endif /* NETINET6 && NEEDSGETIPNODE */
@@ -4602,6 +4602,10 @@ add_hostnames(sa)
int save_errno = errno;
if (LogLevel > 3 &&
+#if NETINET && defined(IN_LINKLOCAL)
+ !(sa->sa.sa_family == AF_INET &&
+ IN_LINKLOCAL(ntohl(sa->sin.sin_addr.s_addr))) &&
+#endif /* NETINET && defined(IN_LINKLOCAL) */
#if NETINET6
!(sa->sa.sa_family == AF_INET6 &&
IN6_IS_ADDR_LINKLOCAL(&sa->sin6.sin6_addr)) &&
@@ -5374,14 +5378,30 @@ sm_syslog(level, id, fmt, va_alist)
#if LOG
if (*id == '\0')
{
- if (tTd(89, 8))
+ if (tTd(89, 10))
+ {
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ sm_dprintf("%ld.%06ld %s\n", (long) tv.tv_sec,
+ (long) tv.tv_usec, newstring);
+ }
+ else if (tTd(89, 8))
sm_dprintf("%s\n", newstring);
else
syslog(level, "%s", newstring);
}
else
{
- if (tTd(89, 8))
+ if (tTd(89, 10))
+ {
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ sm_dprintf("%ld.%06ld %s: %s\n", (long) tv.tv_sec,
+ (long) tv.tv_usec, id, newstring);
+ }
+ else if (tTd(89, 8))
sm_dprintf("%s: %s\n", id, newstring);
else
syslog(level, "%s: %s", id, newstring);
diff --git a/src/daemon.c b/src/daemon.c
index a1dcbe850432..498f8c211d2b 100644
--- a/src/daemon.c
+++ b/src/daemon.c
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include "map.h"
-SM_RCSID("@(#)$Id: daemon.c,v 8.691 2011/01/25 18:31:30 ca Exp $")
+SM_RCSID("@(#)$Id: daemon.c,v 8.694 2012/03/03 00:10:42 ca Exp $")
#if defined(SOCK_STREAM) || defined(__GNU_LIBRARY__)
# define USE_SOCK_STREAM 1
@@ -827,6 +827,7 @@ getrequests(e)
OutChannel = outchannel;
DisConnected = false;
+
#if XLA
if (!xla_host_ok(RealHostName))
{
@@ -4405,6 +4406,8 @@ hostnamebyanyaddr(sap)
saveretry = _res.retry;
if (_res.retry * _res.retrans > 20)
_res.retry = 20 / _res.retrans;
+ if (_res.retry == 0)
+ _res.retry = 1;
# endif /* NAMED_BIND */
switch (sap->sa.sa_family)
diff --git a/src/deliver.c b/src/deliver.c
index acd977f5a4b6..4d779897189f 100644
--- a/src/deliver.c
+++ b/src/deliver.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2010 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2010, 2012 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/time.h>
-SM_RCSID("@(#)$Id: deliver.c,v 8.1024 2011/01/12 23:52:59 ca Exp $")
+SM_RCSID("@(#)$Id: deliver.c,v 8.1027 2012/12/19 02:49:21 ca Exp $")
#if HASSETUSERCONTEXT
# include <login_cap.h>
@@ -37,6 +37,7 @@ static void sendenvelope __P((ENVELOPE *, int));
static int coloncmp __P((const char *, const char *));
#if STARTTLS
+# include <openssl/err.h>
static int starttls __P((MAILER *, MCI *, ENVELOPE *));
static int endtlsclt __P((MCI *));
#endif /* STARTTLS */
@@ -4271,7 +4272,7 @@ logdelivery(m, mci, dsn, status, ctladdr, xstart, e)
/* pri: changes with each delivery attempt */
(void) sm_snprintf(bp, SPACELEFT(buf, bp), ", pri=%ld",
- e->e_msgpriority);
+ PRT_NONNEGL(e->e_msgpriority));
bp += strlen(bp);
/* relay: max 66 bytes for IPv4 addresses */
@@ -6191,10 +6192,16 @@ ssl_retry:
if (LogLevel > 5)
{
+ unsigned long l;
+ const char *sr;
+
+ l = ERR_peek_error();
+ sr = ERR_reason_error_string(l);
sm_syslog(LOG_WARNING, NOQID,
- "STARTTLS=client, error: connect failed=%d, SSL_error=%d, errno=%d, retry=%d",
- result, ssl_err, errno, i);
- if (LogLevel > 8)
+ "STARTTLS=client, error: connect failed=%d, reason=%s, SSL_error=%d, errno=%d, retry=%d",
+ result, sr == NULL ? "unknown" : sr, ssl_err,
+ errno, i);
+ if (LogLevel > 9)
tlslogerr("client");
}
diff --git a/src/headers.c b/src/headers.c
index c4bdc8770025..02f9663dd321 100644
--- a/src/headers.c
+++ b/src/headers.c
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/sendmail.h>
-SM_RCSID("@(#)$Id: headers.c,v 8.317 2008/08/27 20:11:55 gshapiro Exp $")
+SM_RCSID("@(#)$Id: headers.c,v 8.318 2012/06/14 23:54:02 ca Exp $")
static HDR *allocheader __P((char *, char *, int, SM_RPOOL_T *, bool));
static size_t fix_mime_header __P((HDR *, ENVELOPE *));
@@ -1152,7 +1152,7 @@ logsender(e, msgid)
(void) sm_snprintf(sbp, SPACELEFT(sbuf, sbp),
"from=%.200s, size=%ld, class=%d, nrcpts=%d",
e->e_from.q_paddr == NULL ? "<NONE>" : e->e_from.q_paddr,
- e->e_msgsize, e->e_class, e->e_nrcpts);
+ PRT_NONNEGL(e->e_msgsize), e->e_class, e->e_nrcpts);
sbp += strlen(sbp);
if (msgid != NULL)
{
@@ -1191,7 +1191,7 @@ logsender(e, msgid)
83));
sm_syslog(LOG_INFO, e->e_id,
"size=%ld, class=%ld, nrcpts=%d",
- e->e_msgsize, e->e_class, e->e_nrcpts);
+ PRT_NONNEGL(e->e_msgsize), e->e_class, e->e_nrcpts);
if (msgid != NULL)
sm_syslog(LOG_INFO, e->e_id,
"msgid=%s",
diff --git a/src/main.c b/src/main.c
index 4d2318fb4355..7d4d089461d1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -26,7 +26,7 @@ SM_UNUSED(static char copyright[]) =
The Regents of the University of California. All rights reserved.\n";
#endif /* ! lint */
-SM_RCSID("@(#)$Id: main.c,v 8.976 2011/03/15 23:14:36 ca Exp $")
+SM_RCSID("@(#)$Id: main.c,v 8.981 2012/06/14 23:54:02 ca Exp $")
#if NETINET || NETINET6
@@ -2561,6 +2561,10 @@ main(argc, argv, envp)
authinfo = getauthinfo(sm_io_getinfo(InChannel, SM_IO_WHAT_FD,
NULL), &forged);
macdefine(&BlankEnvelope.e_macro, A_TEMP, '_', authinfo);
+ if (tTd(75, 9))
+ sm_syslog(LOG_INFO, NOQID,
+ "main: where=after_getauthinfo, RealHostAddr=%s",
+ anynet_ntoa(&RealHostAddr));
/* at this point we are in a child: reset state */
sm_rpool_free(MainEnvelope.e_rpool);
@@ -2827,7 +2831,7 @@ main(argc, argv, envp)
/* set message size */
(void) sm_snprintf(buf, sizeof(buf), "%ld",
- MainEnvelope.e_msgsize);
+ PRT_NONNEGL(MainEnvelope.e_msgsize));
macdefine(&MainEnvelope.e_macro, A_TEMP,
macid("{msg_size}"), buf);
diff --git a/src/map.c b/src/map.c
index 2eb69588eb87..01d79ff2a364 100644
--- a/src/map.c
+++ b/src/map.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: map.c,v 8.706 2010/07/27 03:35:42 ca Exp $")
+SM_RCSID("@(#)$Id: map.c,v 8.709 2012/04/20 18:47:09 ca Exp $")
#if LDAPMAP
# include <sm/ldap.h>
@@ -3434,7 +3434,7 @@ ldapmap_open(map, mode)
{
if (LogLevel > 1)
sm_syslog(LOG_NOTICE, CurEnv->e_id,
- "timeout conning to LDAP server %.100s",
+ "timeout connecting to LDAP server %.100s",
id);
}
@@ -3763,11 +3763,11 @@ ldapmap_lookup(map, name, av, statp)
if (!bitset(MF_OPTIONAL, map->map_mflags))
{
if (bitset(MF_NODEFER, map->map_mflags))
- syserr("Error getting LDAP results in map %s",
- map->map_mname);
+ syserr("Error getting LDAP results, map=%s, name=%s",
+ map->map_mname, name);
else
- syserr("451 4.3.5 Error getting LDAP results in map %s",
- map->map_mname);
+ syserr("451 4.3.5 Error getting LDAP results, map=%s, name=%s",
+ map->map_mname, name);
}
errno = save_errno;
return NULL;
@@ -3781,7 +3781,7 @@ ldapmap_lookup(map, name, av, statp)
{
if (LogLevel > 9)
sm_syslog(LOG_INFO, CurEnv->e_id,
- "ldap %.100s => %s", name,
+ "ldap=%s, %.100s=>%s", map->map_mname, name,
vp == NULL ? "<NULL>" : vp);
if (bitset(MF_MATCHONLY, map->map_mflags))
result = map_rewrite(map, name, strlen(name), NULL);
diff --git a/src/milter.c b/src/milter.c
index 773dfa8f9c6d..9774a91efde7 100644
--- a/src/milter.c
+++ b/src/milter.c
@@ -10,7 +10,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: milter.c,v 8.277 2009/11/06 00:57:06 ca Exp $")
+SM_RCSID("@(#)$Id: milter.c,v 8.279 2012/11/16 20:25:03 ca Exp $")
#if MILTER
# include <sm/sendmail.h>
@@ -42,7 +42,7 @@ static char *milter_write __P((struct milter *, int, char *, ssize_t,
time_t, ENVELOPE *, const char *));
static char *milter_send_command __P((struct milter *, int, void *,
ssize_t, ENVELOPE *, char *, const char *));
-static char *milter_command __P((int, void *, ssize_t, char **,
+static char *milter_command __P((int, void *, ssize_t, int,
ENVELOPE *, char *, const char *, bool));
static char *milter_body __P((struct milter *, ENVELOPE *, char *));
static int milter_reopen_df __P((ENVELOPE *));
@@ -79,13 +79,13 @@ static int milter_set_macros __P((char *, char **, char *, int));
# define SMFS_READY 'R' /* ready for action */
# define SMFS_SKIP 'S' /* skip body */
-static char *MilterConnectMacros[MAXFILTERMACROS + 1];
-static char *MilterHeloMacros[MAXFILTERMACROS + 1];
-static char *MilterEnvFromMacros[MAXFILTERMACROS + 1];
-static char *MilterEnvRcptMacros[MAXFILTERMACROS + 1];
-static char *MilterDataMacros[MAXFILTERMACROS + 1];
-static char *MilterEOMMacros[MAXFILTERMACROS + 1];
-static char *MilterEOHMacros[MAXFILTERMACROS + 1];
+/*
+** MilterMacros contains the milter macros for each milter and each stage.
+** indices are (in order): stages, milter-index, macro
+** milter-index == 0: "global" macros (not for a specific milter).
+*/
+
+static char *MilterMacros[SMFIM_LAST + 1][MAXFILTERS + 1][MAXFILTERMACROS + 1];
static size_t MilterMaxDataSize = MILTER_MAX_DATA_SIZE;
# define MILTER_CHECK_DONE_MSG() \
@@ -98,6 +98,16 @@ static size_t MilterMaxDataSize = MILTER_MAX_DATA_SIZE;
milter_abort(e); \
}
+/* set state in case of an error */
+# define MILTER_SET_STATE \
+ if (bitnset(SMF_TEMPFAIL, m->mf_flags)) \
+ *state = SMFIR_TEMPFAIL; \
+ else if (bitnset(SMF_TEMPDROP, m->mf_flags)) \
+ *state = SMFIR_SHUTDOWN; \
+ else if (bitnset(SMF_REJECT, m->mf_flags)) \
+ *state = SMFIR_REJECT
+
+/* flow through code maybe using continue; don't wrap in do {} while */
# define MILTER_CHECK_ERROR(initial, action) \
if (!initial && tTd(71, 100)) \
{ \
@@ -119,12 +129,7 @@ static size_t MilterMaxDataSize = MILTER_MAX_DATA_SIZE;
e->e_quarmsg); \
} \
} \
- else if (bitnset(SMF_TEMPFAIL, m->mf_flags)) \
- *state = SMFIR_TEMPFAIL; \
- else if (bitnset(SMF_TEMPDROP, m->mf_flags)) \
- *state = SMFIR_SHUTDOWN; \
- else if (bitnset(SMF_REJECT, m->mf_flags)) \
- *state = SMFIR_REJECT; \
+ else MILTER_SET_STATE; \
else \
action;
@@ -1221,6 +1226,7 @@ milter_setup(line)
char *p;
struct milter *m;
STAB *s;
+ static int idx = 0;
/* collect the filter name */
for (p = line;
@@ -1323,7 +1329,10 @@ milter_setup(line)
if (s->s_milter != NULL)
syserr("X%s: duplicate filter definition", m->mf_name);
else
+ {
s->s_milter = m;
+ m->mf_idx = ++idx;
+ }
}
/*
@@ -1555,20 +1564,13 @@ static struct milteropt
unsigned char mo_code; /* code for option */
} MilterOptTab[] =
{
-# define MO_MACROS_CONNECT SMFIM_CONNECT
- { "macros.connect", MO_MACROS_CONNECT },
-# define MO_MACROS_HELO SMFIM_HELO
- { "macros.helo", MO_MACROS_HELO },
-# define MO_MACROS_ENVFROM SMFIM_ENVFROM
- { "macros.envfrom", MO_MACROS_ENVFROM },
-# define MO_MACROS_ENVRCPT SMFIM_ENVRCPT
- { "macros.envrcpt", MO_MACROS_ENVRCPT },
-# define MO_MACROS_DATA SMFIM_DATA
- { "macros.data", MO_MACROS_DATA },
-# define MO_MACROS_EOM SMFIM_EOM
- { "macros.eom", MO_MACROS_EOM },
-# define MO_MACROS_EOH SMFIM_EOH
- { "macros.eoh", MO_MACROS_EOH },
+ { "macros.connect", SMFIM_CONNECT },
+ { "macros.helo", SMFIM_HELO },
+ { "macros.envfrom", SMFIM_ENVFROM },
+ { "macros.envrcpt", SMFIM_ENVRCPT },
+ { "macros.data", SMFIM_DATA },
+ { "macros.eom", SMFIM_EOM },
+ { "macros.eoh", SMFIM_EOH },
# define MO_LOGLEVEL 0x07
{ "loglevel", MO_LOGLEVEL },
@@ -1655,39 +1657,14 @@ milter_set_option(name, val, sticky)
break;
# endif /* _FFR_MAXDATASIZE || _FFR_MDS_NEGOTIATE */
- case MO_MACROS_CONNECT:
- if (macros == NULL)
- macros = MilterConnectMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_HELO:
- if (macros == NULL)
- macros = MilterHeloMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_ENVFROM:
- if (macros == NULL)
- macros = MilterEnvFromMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_ENVRCPT:
- if (macros == NULL)
- macros = MilterEnvRcptMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_EOH:
- if (macros == NULL)
- macros = MilterEOHMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_EOM:
- if (macros == NULL)
- macros = MilterEOMMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_DATA:
- if (macros == NULL)
- macros = MilterDataMacros;
+ case SMFIM_CONNECT:
+ case SMFIM_HELO:
+ case SMFIM_ENVFROM:
+ case SMFIM_ENVRCPT:
+ case SMFIM_EOH:
+ case SMFIM_EOM:
+ case SMFIM_DATA:
+ macros = MilterMacros[mo->mo_code][0];
r = milter_set_macros(name, macros, val, nummac);
if (r >= 0)
@@ -2188,7 +2165,7 @@ milter_send_command(m, cmd, data, sz, e, state, where)
sm_syslog(LOG_ERR, e->e_id,
"milter_send_command(%s): action=%s returned bogus response %c",
m->mf_name, action, rcmd);
- milter_error(m, e);
+ milter_error(m, e); /* NO ERROR CHECK? */
break;
}
@@ -2218,11 +2195,11 @@ milter_send_command(m, cmd, data, sz, e, state, where)
*/
static char *
-milter_command(cmd, data, sz, macros, e, state, where, cmd_error)
+milter_command(cmd, data, sz, stage, e, state, where, cmd_error)
int cmd;
void *data;
ssize_t sz;
- char **macros;
+ int stage;
ENVELOPE *e;
char *state;
const char *where;
@@ -2254,14 +2231,27 @@ milter_command(cmd, data, sz, macros, e, state, where, cmd_error)
(m->mf_state != SMFS_OPEN && m->mf_state != SMFS_INMSG))
continue;
- /* send macros (regardless of whether we send command) */
- if (macros != NULL && macros[0] != NULL)
+ if (stage >= SMFIM_FIRST && stage <= SMFIM_LAST)
{
- milter_send_macros(m, macros, command, e);
- if (m->mf_state == SMFS_ERROR)
+ int idx;
+ char **macros;
+
+ if ((m->mf_lflags & MI_LFLAGS_SYM(stage)) != 0)
+ idx = m->mf_idx;
+ else
+ idx = 0;
+ SM_ASSERT(idx >= 0 && idx <= MAXFILTERS);
+ macros = MilterMacros[stage][idx];
+
+ /* send macros (regardless of whether we send cmd) */
+ if (macros != NULL && macros[0] != NULL)
{
- MILTER_CHECK_ERROR(false, continue);
- break;
+ milter_send_macros(m, macros, command, e);
+ if (m->mf_state == SMFS_ERROR)
+ {
+ MILTER_CHECK_ERROR(false, continue);
+ break;
+ }
}
}
@@ -2329,40 +2319,17 @@ milter_getsymlist(m, buf, rlen, offset)
switch (i)
{
- case MO_MACROS_CONNECT:
- if (macros == NULL)
- macros = MilterConnectMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_HELO:
- if (macros == NULL)
- macros = MilterHeloMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_ENVFROM:
- if (macros == NULL)
- macros = MilterEnvFromMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_ENVRCPT:
- if (macros == NULL)
- macros = MilterEnvRcptMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_EOM:
- if (macros == NULL)
- macros = MilterEOMMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_EOH:
- if (macros == NULL)
- macros = MilterEOHMacros;
- /* FALLTHROUGH */
-
- case MO_MACROS_DATA:
- if (macros == NULL)
- macros = MilterDataMacros;
-
+ case SMFIM_CONNECT:
+ case SMFIM_HELO:
+ case SMFIM_ENVFROM:
+ case SMFIM_ENVRCPT:
+ case SMFIM_EOH:
+ case SMFIM_EOM:
+ case SMFIM_DATA:
+ SM_ASSERT(m->mf_idx > 0 && m->mf_idx < MAXFILTERS);
+ macros = MilterMacros[i][m->mf_idx];
+
+ m->mf_lflags |= MI_LFLAGS_SYM(i);
len = strlen(buf + offset);
if (len > 0)
{
@@ -2370,6 +2337,9 @@ milter_getsymlist(m, buf, rlen, offset)
buf + offset, nummac);
if (r >= 0)
nummac = r;
+ if (tTd(64, 5))
+ sm_dprintf("milter_getsymlist(%s, %s)=%d\n",
+ m->mf_name, buf + offset, r);
}
break;
@@ -3989,7 +3959,7 @@ milter_connect(hostname, addr, e, state)
(void) memcpy(bp, sockinfo, strlen(sockinfo) + 1);
}
- response = milter_command(SMFIC_CONNECT, buf, s, MilterConnectMacros,
+ response = milter_command(SMFIC_CONNECT, buf, s, SMFIM_CONNECT,
e, state, "connect", false);
sm_free(buf); /* XXX */
@@ -4078,7 +4048,7 @@ milter_helo(helo, e, state)
}
response = milter_command(SMFIC_HELO, helo, strlen(helo) + 1,
- MilterHeloMacros, e, state, "helo", false);
+ SMFIM_EOH, e, state, "helo", false);
milter_per_connection_check(e);
return response;
}
@@ -4166,7 +4136,7 @@ milter_envfrom(args, e, state)
sm_syslog(LOG_INFO, e->e_id, "Milter: sender: %s", buf);
/* send it over */
- response = milter_command(SMFIC_MAIL, buf, s, MilterEnvFromMacros,
+ response = milter_command(SMFIC_MAIL, buf, s, SMFIM_ENVFROM,
e, state, "mail", false);
sm_free(buf); /* XXX */
@@ -4247,7 +4217,7 @@ milter_envrcpt(args, e, state, rcpt_error)
sm_syslog(LOG_INFO, e->e_id, "Milter: rcpts: %s", buf);
/* send it over */
- response = milter_command(SMFIC_RCPT, buf, s, MilterEnvRcptMacros,
+ response = milter_command(SMFIC_RCPT, buf, s, SMFIM_ENVRCPT,
e, state, "rcpt", rcpt_error);
sm_free(buf); /* XXX */
return response;
@@ -4273,8 +4243,8 @@ milter_data_cmd(e, state)
sm_dprintf("milter_data_cmd\n");
/* send it over */
- return milter_command(SMFIC_DATA, NULL, 0, MilterDataMacros, e, state,
- "data", false);
+ return milter_command(SMFIC_DATA, NULL, 0, SMFIM_DATA,
+ e, state, "data", false);
}
/*
@@ -4293,7 +4263,12 @@ milter_data_cmd(e, state)
** modify the envelope or message.
*/
+/* flow through code using continue; don't wrap in do {} while */
# define MILTER_CHECK_RESULTS() \
+ if (m->mf_state == SMFS_ERROR && *state == SMFIR_CONTINUE) \
+ { \
+ MILTER_SET_STATE; \
+ } \
if (*state == SMFIR_ACCEPT || \
m->mf_state == SMFS_DONE || \
m->mf_state == SMFS_ERROR) \
@@ -4339,6 +4314,8 @@ milter_data(e, state)
for (i = 0; InputFilters[i] != NULL; i++)
{
+ int idx;
+ char **macros;
struct milter *m = InputFilters[i];
if (*state != SMFIR_CONTINUE &&
@@ -4383,10 +4360,16 @@ milter_data(e, state)
if (tTd(64, 10))
sm_dprintf("milter_data: eoh\n");
- if (MilterEOHMacros[0] != NULL)
+ if ((m->mf_lflags & MI_LFLAGS_SYM(SMFIM_EOH)) != 0)
+ idx = m->mf_idx;
+ else
+ idx = 0;
+ SM_ASSERT(idx >= 0 && idx <= MAXFILTERS);
+ macros = MilterMacros[SMFIM_EOH][idx];
+
+ if (macros != NULL)
{
- milter_send_macros(m, MilterEOHMacros,
- SMFIC_EOH, e);
+ milter_send_macros(m, macros, SMFIC_EOH, e);
MILTER_CHECK_RESULTS();
}
@@ -4405,10 +4388,15 @@ milter_data(e, state)
MILTER_CHECK_RESULTS();
}
- if (MilterEOMMacros[0] != NULL)
+ if ((m->mf_lflags & MI_LFLAGS_SYM(SMFIM_EOH)) != 0)
+ idx = m->mf_idx;
+ else
+ idx = 0;
+ SM_ASSERT(idx >= 0 && idx <= MAXFILTERS);
+ macros = MilterMacros[SMFIM_EOM][idx];
+ if (macros != NULL)
{
- milter_send_macros(m, MilterEOMMacros,
- SMFIC_BODYEOB, e);
+ milter_send_macros(m, macros, SMFIC_BODYEOB, e);
MILTER_CHECK_RESULTS();
}
@@ -4734,7 +4722,7 @@ milter_unknown(smtpcmd, e, state)
sm_dprintf("milter_unknown(%s)\n", smtpcmd);
return milter_command(SMFIC_UNKNOWN, smtpcmd, strlen(smtpcmd) + 1,
- NULL, e, state, "unknown", false);
+ SMFIM_NOMACROS, e, state, "unknown", false);
}
/*
diff --git a/src/parseaddr.c b/src/parseaddr.c
index 9135c22c41f6..930f61da0d78 100644
--- a/src/parseaddr.c
+++ b/src/parseaddr.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: parseaddr.c,v 8.404 2010/07/27 03:35:42 ca Exp $")
+SM_RCSID("@(#)$Id: parseaddr.c,v 8.405 2012/02/27 22:49:08 ca Exp $")
#include <sm/sendmail.h>
#include "map.h"
@@ -242,6 +242,7 @@ parseaddr(addr, a, flags, delim, delimptr, e, isrcpt)
**
** Parameters:
** addr -- the address to check.
+** note: this is the complete address (including display part)
** delimptr -- if non-NULL: end of address to check, i.e.,
** a pointer in the address string.
** isrcpt -- true iff the address is for a recipient.
diff --git a/src/queue.c b/src/queue.c
index 16142d9c33e5..70b2965b88cb 100644
--- a/src/queue.c
+++ b/src/queue.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2009, 2011 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2009, 2011, 2012 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/sem.h>
-SM_RCSID("@(#)$Id: queue.c,v 8.991 2011/03/15 23:14:36 ca Exp $")
+SM_RCSID("@(#)$Id: queue.c,v 8.997 2012/06/14 23:54:03 ca Exp $")
#include <dirent.h>
@@ -1493,6 +1493,7 @@ runqueue(forkflag, verbose, persistent, runall)
for (i = 0; i < NumWorkGroups && !NoMoreRunners; i++)
{
int rwgflags = RWG_NONE;
+ int wasblocked;
/*
** If MaxQueueChildren active then test whether the start
@@ -1529,7 +1530,11 @@ runqueue(forkflag, verbose, persistent, runall)
** increase if some queue runners "hang" for a long time.
*/
+ /* don't let proc_list_drop() change CurRunners */
+ wasblocked = sm_blocksignal(SIGCHLD);
CurRunners += WorkGrp[curnum].wg_maxact;
+ if (wasblocked == 0)
+ (void) sm_releasesignal(SIGCHLD);
if (forkflag)
rwgflags |= RWG_FORK;
if (verbose)
@@ -1549,7 +1554,13 @@ runqueue(forkflag, verbose, persistent, runall)
if (!ret)
{
+ /* don't let proc_list_drop() change CurRunners */
+ wasblocked = sm_blocksignal(SIGCHLD);
CurRunners -= WorkGrp[curnum].wg_maxact;
+ CHK_CUR_RUNNERS("runqueue", curnum,
+ WorkGrp[curnum].wg_maxact);
+ if (wasblocked == 0)
+ (void) sm_releasesignal(SIGCHLD);
break;
}
@@ -2031,6 +2042,9 @@ run_work_group(wgrp, flags)
{
IgnoreHostStatus = true;
MinQueueAge = 0;
+#if _FFR_EXPDELAY
+ MaxQueueAge = 0;
+#endif /* _FFR_EXPDELAY */
}
/*
@@ -2300,7 +2314,7 @@ run_work_group(wgrp, flags)
if (bitset(RWG_PERSISTENT, flags))
{
sequenceno = 1;
- sm_setproctitle(true, CurEnv, "running queue: %s",
+ sm_setproctitle(true, NULL, "running queue: %s",
qid_printqueue(qgrp, qdir));
/*
@@ -2860,7 +2874,7 @@ gatherq(qgrp, qdir, doall, full, more, pnentries)
#if _FFR_EXPDELAY
if (MaxQueueAge > 0)
{
- time_t lasttry, delay;
+ time_t lasttry, delay;
lasttry = (time_t) atol(&lbuf[1]);
delay = MIN(lasttry - w->w_ctime,
@@ -3704,6 +3718,7 @@ dowork(qgrp, qdir, id, forkflag, requeueflag, e)
(void) dropenvelope(e, true, false);
sm_rpool_free(rpool);
e->e_rpool = NULL;
+ e->e_message = NULL;
}
}
e->e_id = NULL;
@@ -4577,7 +4592,7 @@ readqf(e, openonly)
e->e_dfdev = st.st_dev;
e->e_dfino = ST_INODE(st);
(void) sm_snprintf(buf, sizeof(buf), "%ld",
- e->e_msgsize);
+ PRT_NONNEGL(e->e_msgsize));
macdefine(&e->e_macro, A_TEMP, macid("{msg_size}"),
buf);
}
diff --git a/src/sasl.c b/src/sasl.c
index 6f9e4a50df99..0e4e8e1d8c21 100644
--- a/src/sasl.c
+++ b/src/sasl.c
@@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
-SM_RCSID("@(#)$Id: sasl.c,v 8.22 2006/08/15 23:24:57 ca Exp $")
+SM_RCSID("@(#)$Id: sasl.c,v 8.23 2012/11/27 18:53:13 gshapiro Exp $")
#if SASL
# include <stdlib.h>
@@ -20,13 +20,19 @@ SM_RCSID("@(#)$Id: sasl.c,v 8.22 2006/08/15 23:24:57 ca Exp $")
** In order to ensure that storage leaks are tracked, and to prevent
** conflicts between the sm_heap package and sasl, we tell sasl to
** use the following heap allocation functions. Unfortunately,
-** the sasl package incorrectly specifies the size of a block
+** older sasl packages incorrectly specifies the size of a block
** using unsigned long: for portability, it should be size_t.
*/
-void *sm_sasl_malloc __P((unsigned long));
-static void *sm_sasl_calloc __P((unsigned long, unsigned long));
-static void *sm_sasl_realloc __P((void *, unsigned long));
+# if defined(SASL_VERSION_FULL) && SASL_VERSION_FULL >= 0x02011a
+# define SM_SASL_SIZE_T size_t
+# else /* defined(SASL_VERSION_FULL) && SASL_VERSION_FULL >= 0x02011a */
+# define SM_SASL_SIZE_T unsigned long
+# endif /* defined(SASL_VERSION_FULL) && SASL_VERSION_FULL >= 0x02011a */
+
+void *sm_sasl_malloc __P((SM_SASL_SIZE_T));
+static void *sm_sasl_calloc __P((SM_SASL_SIZE_T, SM_SASL_SIZE_T));
+static void *sm_sasl_realloc __P((void *, SM_SASL_SIZE_T));
void sm_sasl_free __P((void *));
/*
@@ -50,7 +56,7 @@ void sm_sasl_free __P((void *));
void *
sm_sasl_malloc(size)
- unsigned long size;
+ SM_SASL_SIZE_T size;
{
return sm_malloc((size_t) size);
}
@@ -71,8 +77,8 @@ sm_sasl_malloc(size)
static void *
sm_sasl_calloc(nelem, elemsize)
- unsigned long nelem;
- unsigned long elemsize;
+ SM_SASL_SIZE_T nelem;
+ SM_SASL_SIZE_T elemsize;
{
size_t size;
void *p;
@@ -99,7 +105,7 @@ sm_sasl_calloc(nelem, elemsize)
static void *
sm_sasl_realloc(o, size)
void *o;
- unsigned long size;
+ SM_SASL_SIZE_T size;
{
return sm_realloc(o, (size_t) size);
}
diff --git a/src/savemail.c b/src/savemail.c
index 4178245cc5a3..241328148d00 100644
--- a/src/savemail.c
+++ b/src/savemail.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: savemail.c,v 8.314 2009/12/18 17:08:01 ca Exp $")
+SM_RCSID("@(#)$Id: savemail.c,v 8.315 2012/02/27 17:43:03 gshapiro Exp $")
static bool errbody __P((MCI *, ENVELOPE *, char *));
static bool pruneroute __P((char *));
@@ -506,6 +506,7 @@ returntosender(msg, returnq, flags, e)
int flags;
register ENVELOPE *e;
{
+ int ret;
register ENVELOPE *ee;
ENVELOPE *oldcur = CurEnv;
ENVELOPE errenvelope;
@@ -703,24 +704,35 @@ returntosender(msg, returnq, flags, e)
/* actually deliver the error message */
sendall(ee, SM_DELIVER);
-
- /* restore state */
(void) dropenvelope(ee, true, false);
- sm_rpool_free(ee->e_rpool);
- CurEnv = oldcur;
- returndepth--;
/* check for delivery errors */
+ ret = -1;
if (ee->e_parent == NULL ||
!bitset(EF_RESPONSE, ee->e_parent->e_flags))
- return 0;
- for (q = ee->e_sendqueue; q != NULL; q = q->q_next)
{
- if (QS_IS_ATTEMPTED(q->q_state))
- return 0;
+ ret = 0;
}
- return -1;
+ else
+ {
+ for (q = ee->e_sendqueue; q != NULL; q = q->q_next)
+ {
+ if (QS_IS_ATTEMPTED(q->q_state))
+ {
+ ret = 0;
+ break;
+ }
+ }
+ }
+
+ /* restore state */
+ sm_rpool_free(ee->e_rpool);
+ CurEnv = oldcur;
+ returndepth--;
+
+ return ret;
}
+
/*
** ERRBODY -- output the body of an error message.
**
diff --git a/src/sendmail.h b/src/sendmail.h
index 39ba16cf0cc6..f30d7d77e959 100644
--- a/src/sendmail.h
+++ b/src/sendmail.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2011 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -52,7 +52,7 @@
#ifdef _DEFINE
# ifndef lint
-SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1089 2011/03/15 23:14:36 ca Exp $";
+SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1096 2012/11/16 20:25:03 ca Exp $";
# endif /* ! lint */
#endif /* _DEFINE */
@@ -941,6 +941,8 @@ struct envelope
#endif /* _FFR_MILTER_ENHSC */
};
+#define PRT_NONNEGL(v) ((v) < 0 ? LONG_MAX : (v))
+
/* values for e_flags */
#define EF_OLDSTYLE 0x00000001L /* use spaces (not commas) in hdrs */
#define EF_INQUEUE 0x00000002L /* this message is fully queued */
@@ -1481,7 +1483,6 @@ struct symtab
union
{
BITMAP256 sv_class; /* bit-map of word classes */
- ADDRESS *sv_addr; /* pointer to address header */
MAILER *sv_mailer; /* pointer to mailer */
char *sv_alias; /* alias */
MAPCLASS sv_mapclass; /* mapping function class */
@@ -1511,7 +1512,7 @@ typedef struct symtab STAB;
/* symbol types */
#define ST_UNDEF 0 /* undefined type */
#define ST_CLASS 1 /* class map */
-#define ST_ADDRESS 2 /* an address in parsed format */
+/* #define ST_unused 2 UNUSED */
#define ST_MAILER 3 /* a mailer header */
#define ST_ALIAS 4 /* an alias */
#define ST_MAPCLASS 5 /* mapping function class */
@@ -1538,7 +1539,6 @@ typedef struct symtab STAB;
#define ST_MCI 17 /* mailer connection info (offset) */
#define s_class s_value.sv_class
-#define s_address s_value.sv_addr
#define s_mailer s_value.sv_mailer
#define s_alias s_value.sv_alias
#define s_mci s_value.sv_mci
@@ -1780,6 +1780,8 @@ struct milter
char *mf_conn; /* connection info */
int mf_sock; /* connected socket */
char mf_state; /* state of filter */
+ char mf_lflags; /* "local" flags */
+ int mf_idx; /* milter number (index) */
time_t mf_timeout[SMFTO_NUM_TO]; /* timeouts */
#if _FFR_MILTER_CHECK
/* for testing only */
@@ -1789,6 +1791,9 @@ struct milter
#endif /* _FFR_MILTER_CHECK */
};
+#define MI_LFL_NONE 0x00000000
+#define MI_LFLAGS_SYM(st) (1 << (st)) /* has its own symlist for stage st */
+
struct milters
{
mi_int32 mis_flags; /* filter flags */
@@ -2236,6 +2241,19 @@ extern unsigned char tTdvect[100]; /* trace vector */
# define CHECK_RESTART _CHECK_RESTART
+#define CHK_CUR_RUNNERS(fct, idx, count) \
+ do \
+ { \
+ if (CurRunners < 0) \
+ { \
+ if (LogLevel > 3) \
+ sm_syslog(LOG_ERR, NOQID, \
+ "%s: CurRunners=%d, i=%d, count=%d, status=should not happen", \
+ fct, CurRunners, idx, count); \
+ CurRunners = 0; \
+ } \
+ } while (0)
+
/* reply types (text in SmtpMsgBuffer) */
#define XS_DEFAULT 0
#define XS_STARTTLS 1
diff --git a/src/srvrsmtp.c b/src/srvrsmtp.c
index 1e6a5d2fe293..c4c045bb0487 100644
--- a/src/srvrsmtp.c
+++ b/src/srvrsmtp.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2010 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2010, 2012 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -17,7 +17,7 @@
# include <libmilter/mfdef.h>
#endif /* MILTER */
-SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.1008 2011/01/12 23:52:59 ca Exp $")
+SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.1011 2012/12/19 02:49:21 ca Exp $")
#include <sm/time.h>
#include <sm/fdset.h>
@@ -30,6 +30,7 @@ SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.1008 2011/01/12 23:52:59 ca Exp $")
static int saslmechs __P((sasl_conn_t *, char **));
#endif /* SASL */
#if STARTTLS
+# include <openssl/err.h>
# include <sysexits.h>
static SSL_CTX *srv_ctx = NULL; /* TLS server context */
@@ -1914,11 +1915,18 @@ smtp(nullserver, d_flags, e)
if (LogLevel > 5)
{
+ unsigned long l;
+ const char *sr;
+
+ l = ERR_peek_error();
+ sr = ERR_reason_error_string(l);
sm_syslog(LOG_WARNING, NOQID,
- "STARTTLS=server, error: accept failed=%d, SSL_error=%d, errno=%d, retry=%d, relay=%.100s",
- r, ssl_err, errno, i,
+ "STARTTLS=server, error: accept failed=%d, reason=%s, SSL_error=%d, errno=%d, retry=%d, relay=%.100s",
+ r, sr == NULL ? "unknown"
+ : sr,
+ ssl_err, errno, i,
CurSmtpClient);
- if (LogLevel > 8)
+ if (LogLevel > 9)
tlslogerr("server");
}
tls_ok_srv = false;
@@ -3481,7 +3489,7 @@ smtp_data(smtp, e)
collect(InChannel, true, NULL, e, true);
/* redefine message size */
- (void) sm_snprintf(buf, sizeof(buf), "%ld", e->e_msgsize);
+ (void) sm_snprintf(buf, sizeof(buf), "%ld", PRT_NONNEGL(e->e_msgsize));
macdefine(&e->e_macro, A_TEMP, macid("{msg_size}"), buf);
/* rscheck() will set Errors or EF_DISCARD if it trips */
@@ -3559,7 +3567,7 @@ smtp_data(smtp, e)
}
/* Milter may have changed message size */
- (void) sm_snprintf(buf, sizeof(buf), "%ld", e->e_msgsize);
+ (void) sm_snprintf(buf, sizeof(buf), "%ld", PRT_NONNEGL(e->e_msgsize));
macdefine(&e->e_macro, A_TEMP, macid("{msg_size}"), buf);
/* abort message filters that didn't get the body & log msg is OK */
diff --git a/src/stab.c b/src/stab.c
index 6dacdfa4ee55..1c4c0c1f4988 100644
--- a/src/stab.c
+++ b/src/stab.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: stab.c,v 8.89 2006/08/15 23:24:58 ca Exp $")
+SM_RCSID("@(#)$Id: stab.c,v 8.91 2011/08/08 17:33:34 ca Exp $")
/*
** STAB -- manage the symbol table
@@ -65,7 +65,7 @@ stab(name, type, op)
sm_dprintf("(hfunc=%d) ", hfunc);
ps = &SymTab[hfunc];
- if (type == ST_MACRO || type == ST_RULESET)
+ if (type == ST_MACRO || type == ST_RULESET || type == ST_NAMECANON)
{
while ((s = *ps) != NULL &&
(s->s_symtype != type || strcmp(name, s->s_name)))
@@ -113,10 +113,6 @@ stab(name, type, op)
len = sizeof(s->s_class);
break;
- case ST_ADDRESS:
- len = sizeof(s->s_address);
- break;
-
case ST_MAILER:
len = sizeof(s->s_mailer);
break;
diff --git a/src/util.c b/src/util.c
index ab491fbfe52b..9bc28ec8ac45 100644
--- a/src/util.c
+++ b/src/util.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: util.c,v 8.416 2009/12/18 17:05:26 ca Exp $")
+SM_RCSID("@(#)$Id: util.c,v 8.425 2012/03/03 00:10:43 ca Exp $")
#include <sm/sendmail.h>
#include <sysexits.h>
@@ -2638,7 +2638,13 @@ proc_list_drop(pid, st, other)
mark_work_group_restart(ProcListVec[i].proc_other, st);
}
else if (type == PROC_QUEUE)
+ {
CurRunners -= ProcListVec[i].proc_count;
+
+ /* CHK_CUR_RUNNERS() can't be used here: uses syslog() */
+ if (CurRunners < 0)
+ CurRunners = 0;
+ }
}
/*
@@ -2702,6 +2708,14 @@ proc_list_probe()
(int) ProcListVec[i].proc_pid);
ProcListVec[i].proc_pid = NO_PID;
SM_FREE_CLR(ProcListVec[i].proc_task);
+
+ if (ProcListVec[i].proc_type == PROC_QUEUE)
+ {
+ CurRunners -= ProcListVec[i].proc_count;
+ CHK_CUR_RUNNERS("proc_list_probe", i,
+ ProcListVec[i].proc_count);
+ }
+
CurChildren--;
}
else
@@ -2852,3 +2866,4 @@ count_open_connections(hostaddr)
}
return n;
}
+
diff --git a/src/version.c b/src/version.c
index 4f156c26377c..2e9fe48ec804 100644
--- a/src/version.c
+++ b/src/version.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2011 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -13,6 +13,6 @@
#include <sm/gen.h>
-SM_RCSID("@(#)$Id: version.c,v 8.227 2011/04/26 23:02:35 ca Exp $")
+SM_RCSID("@(#)$Id: version.c,v 8.235 2012/12/19 05:11:44 ca Exp $")
-char Version[] = "8.14.5";
+char Version[] = "8.14.6";