From 9deed0334876f14b1b224465416449f5c17edc80 Mon Sep 17 00:00:00 2001 From: gshapiro Date: Sat, 29 Dec 2012 20:13:40 +0000 Subject: [PATCH] Import sendmail 8.14.6 --- LICENSE | 4 +- PGPKEYS | 302 +++++++++-- RELEASE_NOTES | 51 +- cf/README | 8 +- cf/cf/generic-bsd4.4.cf | 10 +- cf/cf/generic-hpux10.cf | 10 +- cf/cf/generic-hpux9.cf | 10 +- cf/cf/generic-linux.cf | 10 +- cf/cf/generic-mpeix.cf | 10 +- cf/cf/generic-nextstep3.3.cf | 10 +- cf/cf/generic-osf1.cf | 10 +- cf/cf/generic-solaris.cf | 10 +- cf/cf/generic-sunos4.1.cf | 10 +- cf/cf/generic-ultrix4.cf | 10 +- cf/cf/submit.cf | 10 +- cf/feature/ldap_routing.m4 | 2 +- cf/m4/proto.m4 | 7 +- cf/m4/version.m4 | 6 +- devtools/M4/UNIX/defines.m4 | 8 +- devtools/M4/UNIX/links.m4 | 6 +- devtools/M4/UNIX/manpage.m4 | 10 +- devtools/M4/list.m4 | 4 +- devtools/M4/switch.m4 | 4 +- devtools/OS/Darwin.11.x | 25 + devtools/OS/HP-UX.11.x | 4 +- devtools/OS/IRIX.6.5 | 10 +- devtools/OS/IRIX.6.x | 10 +- devtools/OS/IRIX64.6.0 | 10 +- devtools/OS/IRIX64.6.1 | 10 +- devtools/OS/IRIX64.6.5 | 10 +- devtools/OS/IRIX64.6.x | 10 +- devtools/OS/SunOS.5.12 | 26 + devtools/OS/UNICOS-mp | 10 +- devtools/README | 10 +- doc/op/op.me | 12 +- doc/op/op.ps | 781 ++++++++++++++-------------- include/libmilter/mfapi.h | 7 +- include/sm/clock.h | 4 +- include/sm/tailq.h | 6 +- libmilter/Makefile.m4 | 2 +- libmilter/docs/api.html | 3 +- libmilter/docs/smfi_setsymlist.html | 10 +- libmilter/docs/smfi_settimeout.html | 17 +- libmilter/worker.c | 37 +- src/Makefile.m4 | 2 +- src/TRACEFLAGS | 15 +- src/collect.c | 5 +- src/conf.c | 30 +- src/daemon.c | 5 +- src/deliver.c | 19 +- src/headers.c | 6 +- src/main.c | 8 +- src/map.c | 14 +- src/milter.c | 222 ++++---- src/parseaddr.c | 3 +- src/queue.c | 25 +- src/sasl.c | 24 +- src/savemail.c | 36 +- src/sendmail.h | 28 +- src/srvrsmtp.c | 22 +- src/stab.c | 8 +- src/util.c | 17 +- src/version.c | 6 +- 63 files changed, 1251 insertions(+), 780 deletions(-) create mode 100644 devtools/OS/Darwin.11.x create mode 100644 devtools/OS/SunOS.5.12 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 + +-----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 @@ -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 @@ -1453,13 +1595,79 @@ aBteGdu18ACeNXYmxUhQN/ogZuSaBhd/51aBD8SIRgQQEQIABgUCP9X7SwAKCRCk -----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 +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 -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.4 (Darwin) +Version: GnuPG v1.4.11 (Darwin) + +mQENBE7o89QBCADOc3//yYNlUk1zTEPaiskclluwz6o+kkKp+k2x/rGYm+UYHMl1 +w5B1sLs3greR7eGNBmE3Eftr94v/YZrDqcq4mBzQL4qoS+4Bvrjl9GEbAc7Ke08s +ZG0QC5en6mdn0QY3ZSb98GTlImPjiGC0tVCBylJLeyvBSgUTSkkLmp4lsmH6aa2G +IhTatCIV7I/mAB2lM/KyfwmTf2/q8GsyszC4dwVRUSwfkQDfS+dxc60Krf8GNDsj +bPolwAQi+YWMb6renYV2pNA7n9A5nKAE0oq9pe43fv9Pvek+07JJ3YnP0nS2yS4P +PVewsRhEYllEYSmYmEwwCb0682A3HIVZWkalABEBAAG0P1NlbmRtYWlsLCBJbmMu +IFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJAc2VuZG1haWwuY29t +PokBOQQTAQIAIwUCTujz1AIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJ +EGKe+O4Mi4Mz80MH/0h6qv/sca1mTjy8vYSRYZiIWyYXpuHFUlr31+wF3cBmwCI1 +4qHoRI6MWj4JBnwQq2bAzglgY7GvXXn6TYEFju3gCs6hlvlE8/1z7+Ku/LVsyiCh +3T8tVAxBVeEandnJJgmOP7/dbLBq22/WI7tNi4UOmnqx9n2e2HpBSKk82a2+Z2Mi +9yI6StgTn1osKWTXxyauVJkNKnsoOm/pfH0aR2BbK4K+XtW8B55diGmgKn7o5dN+ +2A+tHqPeioTRgTnzywoSniQ2qOkODKjpNr8UVPVOUFHcO4upT6CQa2hijp3f57ns +GAJs9m/JJDSd8l98nbQZP7G4nZY6RK/NIEkWhECInAQQAQIABgUCTuj0XAAKCRDA +KcpAFvTM6fG9A/9Z9GL5OlfyBYP7XKzFadtg7MReYdcA67DiYpkmiIKnJPSN0X4v +H6Qr/mIjisAGm16UIMQTAIUPJCOm2et+55AA5INWiWrU4TKuCfOUJABMbdyvh5vI +HmBmXdmVartyZj99fCDWOwai1cpm+KQMWvO6FDopPAN+3xJiumIQ6KfO0YkBHAQQ +AQIABgUCTuj0fwAKCRA5pMd9qXiEsL51B/0QR4xgoCCaTzTYKTDYwNanLBa+J+Gm +wO7qU6jK6nnLT1TNyMoElCziVh+rGLELD3Nfw64p0ZG8F4bIJhVLTCpipmXsXnGj +86FrPXV2l/jglNIRv7CD12dBKuYN9AkGJz1Wt6NnaENu9GBciUyIkpVCpSEYTgD2 +jRhkyCqqOSGVj93ze39VPzw6xAGUEQl7+uVUm09lkONDHq4TDr3QcdpyfwntYKib +DfbwmamVwYias6cMxjxT9GPH2Fu0LF9564CGxW3/AUbr9s/Ze85cysAo9JrIHzAL +M9akedEg9Y/VVKH3d634OOXqRuddPjajDcohRZSg9PSrXRquvONR7LjIiJwEEAEC +AAYFAk7pOe0ACgkQzx61AyIyegG9DgQAs6RL4lY2LGaSWrMIHMmsHXEkUT4SNP9n +J8YFAqzhR88dEMC7s6OeCVGniAPnou07pHAez+hNqOvvqJ0HSsJAMaH7IaQKGvCM +6+/VDTBnOJz56r2yVlWqbeTwGKuwwK+nIn4Pdm1DogsN3YMsdfbP4gCcK86mCMef +aEbs75MGJOKIRgQQEQIABgUCTuo+sQAKCRAY9QOAJMJ4Ap/6AJ0W+lZpo0/ttlwI +CCfzyaABwLCRggCg3lKOKjbw52dM/fGQkuVv6VX/OrGInAQQAQIABgUCTuo+uwAK +CRB8S2dtoA4VYwPBA/9A7rXUPQep6yGORpF6KbIGUMNeotPkZp0FES5XbnGFAPJl +P6qUDbM9sPyupk3b+askqHanusmMXQsyKcbTsFzLgoRPU8gjkquEhrwnpWAOz85N +vvHNCNSo7U6Qnyo8B42wXOtumaOTWpko2PC/SkGh4dYA6J2LEftmkVRqZgA6xIic +BBABAgAGBQJO6j7CAAoJENbgof5PvirdnkQD/i8GBLaY97zgOXuoilxq3mQK0cn6 +TWIorrG2J9f1JZGZX6K3mv2G3KsjGs4cXzaFkp2hgD9yqTO/+BBQg0+OiCNxvs+l +zrkP7yIXk7uiUxMMHkXaKwxDUuQbf4V72LJqr5eLZiWNwuWJ2VdsVYoS9/gT4enw +YkZr2hdH/07k4TpDiEYEEBECAAYFAk7qPsgACgkQIfnFvPdqm/XkBQCgjDEuvinF +5lcGIWrERV4wqrgF+JMAoNbS0PaMoXJrVZYHIHhKxHABLP1ZiQEcBBABAgAGBQJO +6j7NAAoJEI5a6fvO7vQ7g8QIAI9j2FkhUN7J6Wk42i/z9vSXCcbXwOnntq8awUz+ +se7Bw1eSLmJs3oxWlL2vhHJVEbvNejh1lReRKDHb6vXZ+YkN/f8TXsj/q+mbCHe9 +NisN5a3BTawAgzVE/E3XvGneQVY1cgC8As8ZoYfRRTdtsEHdicYoCjHWMw1LXfo3 ++hBMsQNvsU1tuPQXjU/qsalfP9qRJe9OVNLo3fkxFSAcalNibB5PS86tyAes+T0k +/5LT30nbeX6ZfY98qDIoRGj7dBWpu73oi4aS713iy0AIyy/Kip5AERtGv+B0llTC +Y21AY0K2JXJGAS7IfVw2BrvbBZevzXe0AursqiLGMZ9Nokm5AQ0ETujz1AEIAM++ +iXuJkoVVvgEb7gxUbJurVDaedOjKVM2pHLuOorQBYI+gQYOZh+r7ZX3PpIGyoLWZ +dlpwEhrEsd/2+TY3nMPzkcfW1D+wkP6MIuD+Y8y1efNeBC7IzNnS5gG3+IItgzEX +Fuql/MMkwQ2xOybYvjzFB5I5cWEkGv1S2xp6uQvIhlD5bWT9R8/1A+9ZZYcP2Ozq +IWQKeBljDEolz7rTd04UgfQK6ROMNYQghTwWZxmBjsdBa7jtWlfjssqngLiuxP5N +XQVwN/vUEbryMfNNS4Stz7/ZrbCwtu9bHfx7sLn7fpcgJso14e42+PAXfnuoXtGm +32o4yUdJPMqwFIMnLS8AEQEAAYkBHwQYAQIACQUCTujz1AIbDAAKCRBinvjuDIuD +MxdPB/91RSXgG8IQDsOroKYNiZbeEHC75vxP3Rl0XOxU3IsN0mzz4ZjS7khLC1Pa +ATCIkx3GwNTjvJkiePpc4knc3ZlKx9fKJz0a+pt0ideMmzYwdcX3enG+Z6z0hEL3 +GJzNC6v7WnV0DsSp7hcT8l9hnqY6HkV497jJG8ztGK3KH943/6YL90RlXqaoRTgq ++bSXhbxHueImhjyYUrmJFTZ0ElSAcuVtJpCHnAEouTQAtshzyUnDXwgoQk9extth +Sn/xUlHB9VGWBAXlq6qJcx2jqWGrmRfz8gMBAwfLTUyNNeixt3TReTtos/HaZK3X +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 [REVOKED] + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.11 (Darwin) mQGiBEQbQzgRBAC7QmIW2r0oJ9Ixk1ewPxfwN1CU15k2ORBzRVIcO1UcLm6I5t3Z Gorbj22J8xNyY67yQ3pi5O+pffl5LujEKTco3D3sHhHnpz8vIaBiLyVUG3dCHZwU @@ -1469,42 +1677,50 @@ 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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', , , , , , ) -where is a map definition describing how to lookup an alternative +where is a map definition describing how to look up an alternative mail host for a particular address; 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 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 <$+> $#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
')-.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.74 E -.74('') +(def)3.718 E 1.218(ault is)-.1 F -.74(``)174 409.2 S.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 F2.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 F04.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 F04.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 F02.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 F02.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 F02.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 F02.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 F03.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 \231Fromuser\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 @@ Milter API

Milter API

@@ -214,7 +214,6 @@ other callbacks are message-oriented. SMFIS_REJECT For a connection-oriented routine, reject this connection; call xxfi_close.
For a message-oriented routine (except - xxfi_eom or xxfi_abort), reject this message.
For a recipient-oriented routine, reject the current recipient (but continue processing the current message). 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 @@ smfi_setsymlist

smfi_setsymlist

@@ -86,8 +86,10 @@ Otherwise MI_SUCCESS is returned. NOTES -There is an internal limit on the number of macros that can be -set (currently 5), +There is an internal limit on the number of macros +that can be set + +(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. @@ -97,7 +99,7 @@ the milter.
-Copyright (c) 2006 Sendmail, Inc. and its suppliers. +Copyright (c) 2006, 2012 Sendmail, Inc. and its suppliers. All rights reserved.
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 @@ smfi_settimeout

smfi_settimeout

@@ -52,11 +52,24 @@ If smfi_settimeout is not called, a default timeout of 7210 seconds is used. smfi_settimeout always returns MI_SUCCESS. + + +NOTES + +Decreasing the timeout is strongly discouraged +and may break the communication with the MTA. +Do not decrease this value without making sure that +the MTA also uses lower timeouts for communication +(with the milter and with the SMTP client). + + + +
-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.
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_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 -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 -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 #include @@ -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 #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 #include -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 @@ -37,6 +37,7 @@ static void sendenvelope __P((ENVELOPE *, int)); static int coloncmp __P((const char *, const char *)); #if STARTTLS +# include 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 #include -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 ? "" : 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 -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 @@ -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 ? "" : 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 -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 @@ -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 -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 #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 #include -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 @@ -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_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 @@ -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 -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); + (void) dropenvelope(ee, true, false); + + /* check for delivery errors */ + ret = -1; + if (ee->e_parent == NULL || + !bitset(EF_RESPONSE, ee->e_parent->e_flags)) + { + ret = 0; + } + else + { + for (q = ee->e_sendqueue; q != NULL; q = q->q_next) + { + if (QS_IS_ATTEMPTED(q->q_state)) + { + ret = 0; + break; + } + } + } /* restore state */ - (void) dropenvelope(ee, true, false); sm_rpool_free(ee->e_rpool); CurEnv = oldcur; returndepth--; - /* check for delivery errors */ - 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; - } - return -1; + 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 #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 #include @@ -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 # include 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 -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 -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 #include @@ -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_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";