Import sendmail 8.14.7

This commit is contained in:
Gregory Neil Shapiro 2013-04-21 16:35:04 +00:00
parent ccc63572ab
commit e388eedd7a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/sendmail/dist/; revision=249727
svn path=/vendor/sendmail/8.14.7/; revision=249728; tag=vendor/sendmail/8.14.7
55 changed files with 1053 additions and 514 deletions

146
CACerts
View File

@ -1,4 +1,4 @@
# $Id: CACerts,v 8.5 2011/05/06 23:05:10 ca Exp $
# $Id: CACerts,v 8.6 2013/01/18 15:14:17 ca Exp $
# This file contains some CA certificates that are used to sign the
# certificates of mail servers of members of the sendmail consortium
# who may reply to questions etc sent to sendmail.org.
@ -10,93 +10,93 @@ Certificate:
Data:
Version: 3 (0x2)
Serial Number:
c2:3c:61:67:3b:0a:cc:5e
Signature Algorithm: md5WithRSAEncryption
Issuer: C=US, ST=California, L=Berkeley, O=Endmail Org, OU=MTA, CN=Claus Assmann CA RSA 2009/emailAddress=ca+ca-rsa2009@esmtp.org
f1:41:b3:3d:ba:bd:33:49
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=California, L=Berkeley, O=Endmail Org, OU=MTA, CN=Claus Assmann CA RSA 2012/emailAddress=ca+ca-rsa2012@esmtp.org
Validity
Not Before: May 14 04:42:18 2009 GMT
Not After : May 13 04:42:18 2012 GMT
Subject: C=US, ST=California, L=Berkeley, O=Endmail Org, OU=MTA, CN=Claus Assmann CA RSA 2009/emailAddress=ca+ca-rsa2009@esmtp.org
Not Before: Mar 10 02:47:46 2012 GMT
Not After : Mar 10 02:47:46 2015 GMT
Subject: C=US, ST=California, L=Berkeley, O=Endmail Org, OU=MTA, CN=Claus Assmann CA RSA 2012/emailAddress=ca+ca-rsa2012@esmtp.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
00:d5:f8:d3:48:38:75:df:2e:6b:8b:c4:8d:1d:41:
5e:ad:4b:96:3d:48:c2:dc:e5:ff:61:98:95:32:03:
e9:b6:71:5a:68:31:bc:e1:5c:aa:0e:70:a7:bc:51:
b7:13:6a:78:54:ae:a6:d0:44:49:1b:5e:37:5b:59:
20:01:47:a7:ec:41:4c:11:79:8c:25:c1:1b:c0:ed:
85:b2:de:0f:10:9f:e7:b2:a3:c4:f1:fc:85:51:aa:
d6:68:49:51:3e:04:e1:eb:e9:cd:87:1b:d0:9d:97:
7b:4c:e1:1e:b1:6a:be:01:0a:a9:97:9a:50:89:e3:
66:06:4c:07:cb:7e:99:70:13:e8:b4:9c:e7:e6:52:
38:c0:64:90:42:d0:f5:cf:22:46:22:60:e9:34:70:
1d:e3:d1:13:33:3a:31:ba:13:06:a8:c2:34:90:47:
c5:a1:bd:2d:7d:98:21:70:de:22:d0:13:11:e5:08:
dd:a0:77:0b:df:34:a7:07:55:de:5a:71:f6:6c:9e:
ec:f7:45:75:1f:22:a9:84:06:c6:4f:84:3d:4e:05:
d7:e4:e5:98:41:61:7b:8e:c9:3b:a6:ed:31:80:7d:
fd:fa:f0:dc:b7:07:82:b8:ec:27:20:39:5f:78:95:
f1:0d:93:8d:f9:4d:21:08:fd:72:89:01:ff:2c:a0:
71:9d
Public-Key: (2048 bit)
Modulus:
00:a2:80:fc:c6:ce:7f:60:38:65:f4:38:f9:7a:d9:
87:fd:47:eb:3f:2c:4a:c9:38:77:6a:77:94:92:7f:
83:3d:99:57:2c:5f:37:bb:ba:12:10:17:56:fa:eb:
43:a6:4b:4c:1e:30:32:07:94:2f:5a:d8:65:49:29:
fa:24:d1:f0:0b:45:2d:e5:d5:cb:7d:60:dc:a6:ce:
a4:47:35:30:ee:5e:8d:c2:30:e7:a7:63:32:b0:59:
80:cc:8c:99:64:77:8f:50:8e:88:51:47:36:ea:9a:
f3:b4:c0:8c:a6:ab:c6:42:57:88:b9:5f:9f:61:15:
bb:79:65:93:ca:a9:fd:17:eb:87:26:8b:eb:b7:2b:
7e:33:05:2b:ba:c0:46:f7:08:fd:da:c1:50:9b:3d:
26:83:5c:53:97:89:2c:cc:5f:f2:7b:a8:b7:3d:fb:
f2:b4:89:0d:43:ef:18:5c:21:75:71:cc:f0:c2:a3:
84:69:c0:a7:f3:9b:de:c1:c7:5a:5c:7e:68:da:49:
71:af:58:a8:51:9f:bd:f9:3d:bb:a5:92:fa:7b:1d:
52:f5:fe:90:59:95:27:65:a4:af:97:9a:4f:01:39:
59:7d:08:6f:a1:8f:42:47:49:bf:12:52:53:39:74:
8d:62:3b:bd:4c:4f:05:0f:c4:b9:3e:da:a8:0e:96:
05:2d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
A7:61:FA:31:AF:A8:E2:5E:93:B6:84:9E:74:08:A2:76:50:87:69:7C
08:38:E3:88:92:53:6E:F1:56:69:27:44:B5:4C:A0:18:CA:06:97:EB
X509v3 Authority Key Identifier:
keyid:A7:61:FA:31:AF:A8:E2:5E:93:B6:84:9E:74:08:A2:76:50:87:69:7C
DirName:/C=US/ST=California/L=Berkeley/O=Endmail Org/OU=MTA/CN=Claus Assmann CA RSA 2009/emailAddress=ca+ca-rsa2009@esmtp.org
serial:C2:3C:61:67:3B:0A:CC:5E
keyid:08:38:E3:88:92:53:6E:F1:56:69:27:44:B5:4C:A0:18:CA:06:97:EB
DirName:/C=US/ST=California/L=Berkeley/O=Endmail Org/OU=MTA/CN=Claus Assmann CA RSA 2012/emailAddress=ca+ca-rsa2012@esmtp.org
serial:F1:41:B3:3D:BA:BD:33:49
X509v3 Basic Constraints:
CA:TRUE
CA:TRUE
X509v3 Subject Alternative Name:
email:ca+ca-rsa2009@esmtp.org
email:ca+ca-rsa2012@esmtp.org
X509v3 Issuer Alternative Name:
email:ca+ca-rsa2009@esmtp.org
Signature Algorithm: md5WithRSAEncryption
b3:38:e0:da:a8:07:d8:cc:b8:4d:8c:20:a6:06:2c:f8:27:db:
8e:28:0f:39:bd:d9:24:c7:9f:e0:4d:d6:b6:63:42:36:0f:d8:
70:41:e7:9e:a2:24:64:05:ea:85:97:ac:f2:cc:c2:a6:71:bb:
30:21:c1:c7:c4:54:34:1d:30:09:f0:9b:74:27:93:59:12:4c:
53:0b:8c:3e:d0:39:ed:4a:d0:d9:66:24:d8:e7:e5:9c:a8:6d:
5f:56:5d:9a:91:fe:1b:7d:b9:7c:79:9e:1c:b9:71:74:14:f8:
0c:30:50:f9:b1:22:56:a8:4d:6f:4b:9b:e5:8a:81:33:1b:77:
75:f6:d8:ce:d4:90:34:86:34:d1:86:75:a9:e1:23:e6:af:c1:
8e:28:97:47:20:4d:1b:57:09:39:f4:56:01:d2:87:43:3e:29:
f6:c4:5b:7d:8f:9e:bd:ad:36:79:cf:09:70:43:30:21:98:23:
31:c8:0d:39:ee:77:e1:4a:44:1a:5c:79:2f:6c:ec:8a:3c:db:
99:a0:11:bc:1a:46:24:51:e7:75:d6:9a:db:ad:dd:55:d4:dd:
ca:81:a0:10:77:96:91:9c:76:30:38:18:f0:82:43:b3:7c:41:
64:4c:4e:da:66:22:67:cf:b7:d7:10:ba:ed:f4:6d:43:59:00:
d0:82:1e:07
email:ca+ca-rsa2012@esmtp.org
Signature Algorithm: sha1WithRSAEncryption
9a:8f:4d:23:5b:30:80:e1:94:e4:66:9c:3a:17:8b:79:49:5b:
ec:5d:e5:a1:22:2d:71:37:a1:51:e7:1d:b1:0d:a9:9b:aa:a9:
0d:c7:cd:d6:24:f9:e0:f0:57:be:4f:74:0c:4b:7a:42:4c:70:
19:2e:8e:eb:cb:1b:00:26:27:eb:1c:42:33:d5:ec:32:b4:6c:
7d:a3:04:a1:5c:00:49:c9:0d:4c:4d:28:37:06:22:77:ec:40:
15:25:3a:23:84:ae:1f:da:90:dd:c9:dc:27:ee:7c:ec:e5:df:
b8:ba:1e:3f:ee:c2:91:a2:3f:22:92:1e:f3:06:7e:aa:e9:c3:
11:2d:3d:2f:85:f7:fc:d7:e2:f8:6d:70:a6:40:62:69:e7:52:
ed:1b:19:38:72:86:08:a1:3d:47:c8:68:82:41:db:db:2a:52:
25:d7:49:aa:9e:c5:83:22:7d:2f:0b:df:8c:90:2d:b5:aa:33:
c7:9b:e8:39:8f:bb:79:5b:13:2d:4e:a9:69:59:c7:09:26:e2:
b5:53:80:86:72:bb:7c:be:e9:46:5b:d8:b2:78:42:d6:5d:c3:
bb:3a:3b:5f:0f:e8:c3:60:fb:88:9f:3a:2b:9f:d3:7d:9f:c7:
32:aa:4d:34:a7:66:a1:25:16:95:a6:69:e7:86:a3:5c:b9:b9:
df:58:05:e3
-----BEGIN CERTIFICATE-----
MIIFJzCCBA+gAwIBAgIJAMI8YWc7CsxeMA0GCSqGSIb3DQEBBAUAMIGlMQswCQYD
MIIFJzCCBA+gAwIBAgIJAPFBsz26vTNJMA0GCSqGSIb3DQEBBQUAMIGlMQswCQYD
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTERMA8GA1UEBxMIQmVya2VsZXkx
FDASBgNVBAoTC0VuZG1haWwgT3JnMQwwCgYDVQQLEwNNVEExIjAgBgNVBAMTGUNs
YXVzIEFzc21hbm4gQ0EgUlNBIDIwMDkxJjAkBgkqhkiG9w0BCQEWF2NhK2NhLXJz
YTIwMDlAZXNtdHAub3JnMB4XDTA5MDUxNDA0NDIxOFoXDTEyMDUxMzA0NDIxOFow
YXVzIEFzc21hbm4gQ0EgUlNBIDIwMTIxJjAkBgkqhkiG9w0BCQEWF2NhK2NhLXJz
YTIwMTJAZXNtdHAub3JnMB4XDTEyMDMxMDAyNDc0NloXDTE1MDMxMDAyNDc0Nlow
gaUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMREwDwYDVQQHEwhC
ZXJrZWxleTEUMBIGA1UEChMLRW5kbWFpbCBPcmcxDDAKBgNVBAsTA01UQTEiMCAG
A1UEAxMZQ2xhdXMgQXNzbWFubiBDQSBSU0EgMjAwOTEmMCQGCSqGSIb3DQEJARYX
Y2ErY2EtcnNhMjAwOUBlc210cC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDV+NNIOHXfLmuLxI0dQV6tS5Y9SMLc5f9hmJUyA+m2cVpoMbzhXKoO
cKe8UbcTanhUrqbQREkbXjdbWSABR6fsQUwReYwlwRvA7YWy3g8Qn+eyo8Tx/IVR
qtZoSVE+BOHr6c2HG9Cdl3tM4R6xar4BCqmXmlCJ42YGTAfLfplwE+i0nOfmUjjA
ZJBC0PXPIkYiYOk0cB3j0RMzOjG6EwaowjSQR8WhvS19mCFw3iLQExHlCN2gdwvf
NKcHVd5acfZsnuz3RXUfIqmEBsZPhD1OBdfk5ZhBYXuOyTum7TGAff368Ny3B4K4
7CcgOV94lfENk435TSEI/XKJAf8soHGdAgMBAAGjggFWMIIBUjAdBgNVHQ4EFgQU
p2H6Ma+o4l6TtoSedAiidlCHaXwwgdoGA1UdIwSB0jCBz4AUp2H6Ma+o4l6TtoSe
dAiidlCHaXyhgaukgagwgaUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9y
A1UEAxMZQ2xhdXMgQXNzbWFubiBDQSBSU0EgMjAxMjEmMCQGCSqGSIb3DQEJARYX
Y2ErY2EtcnNhMjAxMkBlc210cC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCigPzGzn9gOGX0OPl62Yf9R+s/LErJOHdqd5SSf4M9mVcsXze7uhIQ
F1b660OmS0weMDIHlC9a2GVJKfok0fALRS3l1ct9YNymzqRHNTDuXo3CMOenYzKw
WYDMjJlkd49QjohRRzbqmvO0wIymq8ZCV4i5X59hFbt5ZZPKqf0X64cmi+u3K34z
BSu6wEb3CP3awVCbPSaDXFOXiSzMX/J7qLc9+/K0iQ1D7xhcIXVxzPDCo4RpwKfz
m97Bx1pcfmjaSXGvWKhRn735Pbulkvp7HVL1/pBZlSdlpK+Xmk8BOVl9CG+hj0JH
Sb8SUlM5dI1iO71MTwUPxLk+2qgOlgUtAgMBAAGjggFWMIIBUjAdBgNVHQ4EFgQU
CDjjiJJTbvFWaSdEtUygGMoGl+swgdoGA1UdIwSB0jCBz4AUCDjjiJJTbvFWaSdE
tUygGMoGl+uhgaukgagwgaUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9y
bmlhMREwDwYDVQQHEwhCZXJrZWxleTEUMBIGA1UEChMLRW5kbWFpbCBPcmcxDDAK
BgNVBAsTA01UQTEiMCAGA1UEAxMZQ2xhdXMgQXNzbWFubiBDQSBSU0EgMjAwOTEm
MCQGCSqGSIb3DQEJARYXY2ErY2EtcnNhMjAwOUBlc210cC5vcmeCCQDCPGFnOwrM
XjAMBgNVHRMEBTADAQH/MCIGA1UdEQQbMBmBF2NhK2NhLXJzYTIwMDlAZXNtdHAu
b3JnMCIGA1UdEgQbMBmBF2NhK2NhLXJzYTIwMDlAZXNtdHAub3JnMA0GCSqGSIb3
DQEBBAUAA4IBAQCzOODaqAfYzLhNjCCmBiz4J9uOKA85vdkkx5/gTda2Y0I2D9hw
QeeeoiRkBeqFl6zyzMKmcbswIcHHxFQ0HTAJ8Jt0J5NZEkxTC4w+0DntStDZZiTY
5+WcqG1fVl2akf4bfbl8eZ4cuXF0FPgMMFD5sSJWqE1vS5vlioEzG3d19tjO1JA0
hjTRhnWp4SPmr8GOKJdHIE0bVwk59FYB0odDPin2xFt9j569rTZ5zwlwQzAhmCMx
yA057nfhSkQaXHkvbOyKPNuZoBG8GkYkUed11prbrd1V1N3KgaAQd5aRnHYwOBjw
gkOzfEFkTE7aZiJnz7fXELrt9G1DWQDQgh4H
BgNVBAsTA01UQTEiMCAGA1UEAxMZQ2xhdXMgQXNzbWFubiBDQSBSU0EgMjAxMjEm
MCQGCSqGSIb3DQEJARYXY2ErY2EtcnNhMjAxMkBlc210cC5vcmeCCQDxQbM9ur0z
STAMBgNVHRMEBTADAQH/MCIGA1UdEQQbMBmBF2NhK2NhLXJzYTIwMTJAZXNtdHAu
b3JnMCIGA1UdEgQbMBmBF2NhK2NhLXJzYTIwMTJAZXNtdHAub3JnMA0GCSqGSIb3
DQEBBQUAA4IBAQCaj00jWzCA4ZTkZpw6F4t5SVvsXeWhIi1xN6FR5x2xDambqqkN
x83WJPng8Fe+T3QMS3pCTHAZLo7ryxsAJifrHEIz1ewytGx9owShXABJyQ1MTSg3
BiJ37EAVJTojhK4f2pDdydwn7nzs5d+4uh4/7sKRoj8ikh7zBn6q6cMRLT0vhff8
1+L4bXCmQGJp51LtGxk4coYIoT1HyGiCQdvbKlIl10mqnsWDIn0vC9+MkC21qjPH
m+g5j7t5WxMtTqlpWccJJuK1U4CGcrt8vulGW9iyeELWXcO7OjtfD+jDYPuInzor
n9N9n8cyqk00p2ahJRaVpmnnhqNcubnfWAXj
-----END CERTIFICATE-----

139
PGPKEYS
View File

@ -141,6 +141,143 @@ gpExpdV7qPrw9k01j5rod5PjZlG8zV0=
=SR28
-----END PGP PUBLIC KEY BLOCK-----
Type Bits KeyID Created Expires Algorithm Use
pub 2048 5207CAD3 2013-01-02 ------- RSA Sign & Encrypt
fingerprint: B87D 4569 86F1 9484 07E5 CCB4 3D68 B25D 5207 CAD3
uid Sendmail Signing Key/2013 <sendmail@Sendmail.ORG>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.13 (Darwin)
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
x4XQOkQ96TXgQoe/dvARKuUcAQl7RvZOIZcBTPs=
=kpXE
-----END PGP PUBLIC KEY BLOCK-----
Type Bits KeyID Created Expires Algorithm Use
pub 2048 CEEEF43B 2011-12-14 ------- RSA Sign & Encrypt
fingerprint: CA7A 8F39 A241 9FFF B0A9 AB27 8E5A E9FB CEEE F43B
@ -2298,4 +2435,4 @@ DnF3FZZEzV7oqPwC2jzv/1dD6GFhtgy0cnyoPGUJCyc=
=nES8
-----END PGP PUBLIC KEY BLOCK-----
$Revision: 8.40 $, Last updated $Date: 2012/01/09 04:44:59 $
$Revision: 8.43 $, Last updated $Date: 2013/01/18 17:40:21 $

View File

@ -1,11 +1,40 @@
SENDMAIL RELEASE NOTES
$Id: RELEASE_NOTES,v 8.2011 2012/12/21 18:42:16 ca Exp $
$Id: RELEASE_NOTES,v 8.2024 2013/04/19 15:01:58 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.7/8.14.7 2013/04/21
Drop support for IPv4-mapped IPv6 addresses to prevent the MTA
from using a mapped address over a legitimate IPv6 address
and to enforce the proper semantics over the IPv6
connection. Problem noted by Ulrich Sporlein.
Fix a regression introduced in 8.14.6: the wrong list of
macros was sent to a milter in the EHLO stage.
Problem found by Fabrice Bellet, reported via RedHat
(Jaroslav Skarvada).
Fix handling of ORCPT parameter for DSNs: xtext decoding
was not performed and a wrong syntax check was applied
to the "addr-type" field. Problem noted by Dan Lukes
of Obludarium.
Fix handling of NUL characters in the MIME conversion functions
so that message bodies containing them will be sent
on properly. Note: this usually also affects mails
that are not converted as those functions are used
for other purposes too. Problem noted by Elchonon
Edelson of Lockheed Martin.
Do not perform "duplicate" elimination of recipients if they
resolve to the error mailer using a temporary failure
(4xy) via ruleset 0. Problem noted by Akira Takahashi
of IIJ.
CONTRIB: Updated version of etrn.pl script from John Beck
of Oracle.
Portability:
Unlike gcc, clang doesn't apply full prototypes to K&R
definitions.
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

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:43 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -122,7 +122,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:43 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:43 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:43 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -127,7 +127,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:43 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:44 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -122,7 +122,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:44 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:44 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -122,7 +122,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:44 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:44 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -123,7 +123,7 @@ DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.14.6
DZ8.14.7
###############

View File

@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### 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
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:44 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@ -114,7 +114,7 @@ D{MTAHost}[127.0.0.1]
# Configuration version number
DZ8.14.6/Submit
DZ8.14.7/Submit
###############

View File

@ -1,6 +1,6 @@
divert(-1)
#
# Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
# Copyright (c) 1998-2013 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.222 2012/12/19 05:11:43 ca Exp $')
VERSIONID(`$Id: version.m4,v 8.230 2013/04/18 15:07:16 ca Exp $')
#
divert(0)
# Configuration version number
DZ8.14.6`'ifdef(`confCF_VERSION', `/confCF_VERSION')
DZ8.14.7`'ifdef(`confCF_VERSION', `/confCF_VERSION')

View File

@ -1,22 +1,40 @@
#!/usr/local/bin/perl -w
#!/usr/perl5/bin/perl -w
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright (c) 1996-2000 by John T. Beck <john@beck.org>
# All rights reserved.
#
# Copyright (c) 2000 by Sun Microsystems, Inc.
# All rights reserved.
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "@(#)etrn.pl 1.1 00/09/06 SMI"
require 5.005; # minimal Perl version required
require 5.8.4; # minimal Perl version required
use strict;
use warnings;
use English;
# hardcoded constants, should work fine for BSD-based systems
use Socket;
use Getopt::Std;
use vars qw($opt_v);
my $sockaddr = 'S n a4 x8';
our ($opt_v, $opt_b);
# system requirements:
# must have 'hostname' program.
@ -26,11 +44,12 @@ select(STDERR);
chop(my $name = `hostname || uname -n`);
(my $hostname, my $aliases, my $type, my $len, undef) = gethostbyname($name);
my ($hostname) = (gethostbyname($name))[0];
my $usage = "Usage: $PROGRAM_NAME [-v] host [args]";
getopts('v');
my $usage = "Usage: $PROGRAM_NAME [-bv] host [args]";
getopts('bv');
my $verbose = $opt_v;
my $boot_check = $opt_b;
my $server = shift(@ARGV);
my @hosts = @ARGV;
die $usage unless $server;
@ -86,24 +105,60 @@ if (!@hosts) {
die "open $cwfile: $ERRNO";
}
}
# Do this automatically if no client hosts are specified.
$boot_check = "yes";
}
($name, $aliases, my $proto) = getprotobyname('tcp');
($name, $aliases, $port) = getservbyname($port, 'tcp')
my ($proto) = (getprotobyname('tcp'))[2];
($port) = (getservbyname($port, 'tcp'))[2]
unless $port =~ /^\d+/;
if ($boot_check) {
# first connect to localhost to verify that we can accept connections
print "verifying that localhost is accepting SMTP connections\n"
if ($verbose);
my $localhost_ok = 0;
($name, my $laddr) = (gethostbyname('localhost'))[0, 4];
(!defined($name)) && die "gethostbyname failed, unknown host localhost";
# get a connection
my $sinl = sockaddr_in($port, $laddr);
my $save_errno = 0;
for (my $num_tries = 1; $num_tries < 5; $num_tries++) {
socket(S, &PF_INET, &SOCK_STREAM, $proto)
|| die "socket: $ERRNO";
if (connect(S, $sinl)) {
&alarm("sending 'quit' to $server");
print S "quit\n";
alarm(0);
$localhost_ok = 1;
close(S);
alarm(0);
last;
}
print STDERR "localhost connect failed ($num_tries)\n";
$save_errno = $ERRNO;
sleep(1 << $num_tries);
close(S);
alarm(0);
}
if (! $localhost_ok) {
die "could not connect to localhost: $save_errno\n";
}
}
# look it up
($name, $aliases, $type, $len, my $thataddr) = gethostbyname($server);
($name, my $thataddr) = (gethostbyname($server))[0, 4];
(!defined($name)) && die "gethostbyname failed, unknown host $server";
# get a connection
my $that = pack($sockaddr, &AF_INET, $port, $thataddr);
socket(S, &AF_INET, &SOCK_STREAM, $proto)
my $sinr = sockaddr_in($port, $thataddr);
socket(S, &PF_INET, &SOCK_STREAM, $proto)
|| die "socket: $ERRNO";
print "server = $server\n" if (defined($verbose));
&alarm("connect to $server");
if (! connect(S, $that)) {
if (! connect(S, $sinr)) {
die "cannot connect to $server: $ERRNO\n";
}
alarm(0);

View File

@ -9,7 +9,7 @@
.\" the sendmail distribution.
.\"
.\"
.\" $Id: op.me,v 8.749 2012/03/02 22:37:11 ca Exp $
.\" $Id: op.me,v 8.751 2013/04/08 21:41:25 ca Exp $
.\"
.\" eqn op.me | pic | troff -me
.\"
@ -90,7 +90,7 @@ Sendmail, Inc.
.de Ve
Version \\$2
..
.Ve $Revision: 8.749 $
.Ve $Revision: 8.751 $
.rm Ve
.sp
For Sendmail Version 8.14
@ -5547,9 +5547,6 @@ It can have primary types
or full types
(such as
.q text/plain ).
The class is initialized to have
.q text/plain
only.
.ip $=s
contains the set of subtypes of message that can be treated recursively.
By default it contains only
@ -6609,8 +6606,13 @@ Modifier Options (flags) for the client
.)b
The
.i Addr ess
mask may be a numeric address in dot notation
mask may be a numeric address in IPv4 dot notation or IPv6 colon notation
or a network name.
Note that if a network name is specified,
only the first IP address returned for it will be used.
This may cause indeterminate behavior for network names
that resolve to multiple addresses.
Therefore, use of an address is recommended.
.i Modifier
can be the following character:
.(b
@ -6778,8 +6780,13 @@ The
key is used for error messages and logging.
The
.i Addr ess
mask may be a numeric address in dot notation
mask may be a numeric address in IPv4 dot notation or IPv6 colon notation
or a network name.
Note that if a network name is specified,
only the first IP address returned for it will be used.
This may cause indeterminate behavior for network names
that resolve to multiple addresses.
Therefore, use of an address is recommended.
The
.i Family
key defaults to INET (IPv4).
@ -11471,7 +11478,7 @@ replace it with a blank sheet for double-sided output.
.\".sz 10
.\"Eric Allman
.\".sp
.\"Version $Revision: 8.749 $
.\"Version $Revision: 8.751 $
.\".ce 0
.bp 3
.ce

View File

@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19
%%CreationDate: Fri Dec 21 10:44:56 2012
%%CreationDate: Fri Apr 19 08:04:25 2013
%%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.749)1.11 E -.15(Fo)234.465 280.2 S 2.5(rS)
(Ve)260.225 256.2 S(rsion 8.751)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)
@ -4713,9 +4713,8 @@ G 1.853(ultipart messages are al)-6.853 F -.1(wa)-.1 G 1.853
138 345.6 Q 3.357(yw)-.15 G .858(ill be encoded as quoted-printable\).)
-3.357 F .858(It can ha)5.858 F 1.158 -.15(ve p)-.2 H .858
(rimary types \(e.g., \231te).15 F .858(xt\232\) or full)-.15 F
(types \(such as \231te)138 357.6 Q 2.5(xt/plain\232\). The)-.15 F
(class is initialized to ha)2.5 E .3 -.15(ve \231)-.2 H(te).15 E
(xt/plain\232 only)-.15 E(.)-.65 E 18.97($=s contains)102 373.8 R .648
(types \(such as \231te)138 357.6 Q(xt/plain\232\).)-.15 E 18.97
($=s contains)102 373.8 R .648
(the set of subtypes of message that can be treated recursi)3.148 F -.15
(ve)-.25 G(ly).15 E 5.648(.B)-.65 G 3.148(yd)-5.648 G(ef)-3.148 E .648
(ault it con-)-.1 F .969(tains only \231rfc822\232.)138 385.8 R .969
@ -5502,143 +5501,152 @@ G(ree port\))-2.5 E 48.95(Addr Address)214 204.6 R(mask \(def)2.5 E
21.72(SndBufSize Size)214 228.6 R(of TCP send b)2.5 E(uf)-.2 E(fer)-.25
E 21.17(RcvBufSize Size)214 240.6 R(of TCP recei)2.5 E .3 -.15(ve b)-.25
H(uf)-.05 E(fer)-.25 E 34.5(Modi\214er Options)214 252.6 R
(\(\215ags\) for the client)2.5 E(The)174 268.8 Q F2(Addr)3.166 E F1
.666(ess mask may be a numeric address in dot notation or a netw)B .665
(ork name.)-.1 F F2(Modi\214er)174 280.8 Q F1(can be the follo)2.5 E
(wing character:)-.25 E 67(hu)214 297 S(se name of interf)-67 E
(ace for HELO command)-.1 E 64.78(Ad)214 309 S(on')-64.78 E 2.5(tu)-.18
G(se A)-2.5 E(UTH when sending e-mail)-.55 E 66.44(Sd)214 321 S(on')
-66.44 E 2.5(tu)-.18 G(se ST)-2.5 E(AR)-.93 E(TTLS when sending e-mail)
-.6 E .763(If `)174 337.2 R(`h')-.74 E 3.263('i)-.74 G 3.263(ss)-3.263 G
.763(et, the name corresponding to the outgoing interf)-3.263 F .764
(\(\215ags\) for the client)2.5 E(The)174 268.8 Q F2(Addr)3.257 E F1
.756
(ess mask may be a numeric address in IPv4 dot notation or IPv6 colon)B
1.148(notation or a netw)174 280.8 R 1.148(ork name.)-.1 F 1.149
(Note that if a netw)6.148 F 1.149(ork name is speci\214ed, only the)-.1
F .383(\214rst IP address returned for it will be used.)174 292.8 R .383
(This may cause indeterminate beha)5.383 F(v-)-.2 E 1.485(ior for netw)
174 304.8 R 1.485(ork names that resolv)-.1 F 3.985(et)-.15 G 3.985(om)
-3.985 G 1.485(ultiple addresses.)-3.985 F 1.485(Therefore, use of an)
6.485 F(address is recommended.)174 316.8 Q F2(Modi\214er)5 E F1
(can be the follo)2.5 E(wing character:)-.25 E 67(hu)214 333 S
(se name of interf)-67 E(ace for HELO command)-.1 E 64.78(Ad)214 345 S
(on')-64.78 E 2.5(tu)-.18 G(se A)-2.5 E(UTH when sending e-mail)-.55 E
66.44(Sd)214 357 S(on')-66.44 E 2.5(tu)-.18 G(se ST)-2.5 E(AR)-.93 E
(TTLS when sending e-mail)-.6 E .764(If `)174 373.2 R(`h')-.74 E 3.264
('i)-.74 G 3.264(ss)-3.264 G .763
(et, the name corresponding to the outgoing interf)-3.264 F .763
(ace address \(whether)-.1 F .431
(chosen via the Connection parameter or the def)174 349.2 R .431
(ault\) is used for the HELO/EHLO)-.1 F 3.617(command. Ho)174 361.2 R
(we)-.25 E -.15(ve)-.25 G 1.917 -.4(r, t).15 H 1.118
(he name must not start with a square brack).4 F 1.118(et and it must)
-.1 F 1.842(contain at least one dot.)174 373.2 R 1.842
(This is a simple test whether the name is not an IP)6.842 F .712
(address \(in square brack)174 385.2 R .713(ets\) b)-.1 F .713
(ut a quali\214ed hostname.)-.2 F .713(Note that multiple Client-)5.713
F .344(PortOptions settings are allo)174 397.2 R .343
(wed in order to gi)-.25 F .643 -.15(ve s)-.25 H .343
(ettings for each protocol f).15 F(amily)-.1 E .315(\(e.g., one for F)
174 409.2 R .316(amily=inet and one for F)-.15 F 2.816(amily=inet6\). A)
-.15 F .316(restriction placed on one)2.816 F -.1(fa)174 421.2 S
(chosen via the Connection parameter or the def)174 385.2 R .431
(ault\) is used for the HELO/EHLO)-.1 F 3.618(command. Ho)174 397.2 R
(we)-.25 E -.15(ve)-.25 G 1.918 -.4(r, t).15 H 1.118
(he name must not start with a square brack).4 F 1.117(et and it must)
-.1 F 1.841(contain at least one dot.)174 409.2 R 1.842
(This is a simple test whether the name is not an IP)6.842 F .713
(address \(in square brack)174 421.2 R .713(ets\) b)-.1 F .713
(ut a quali\214ed hostname.)-.2 F .712(Note that multiple Client-)5.713
F .343(PortOptions settings are allo)174 433.2 R .343
(wed in order to gi)-.25 F .643 -.15(ve s)-.25 H .344
(ettings for each protocol f).15 F(amily)-.1 E .316(\(e.g., one for F)
174 445.2 R .316(amily=inet and one for F)-.15 F 2.816(amily=inet6\). A)
-.15 F .315(restriction placed on one)2.816 F -.1(fa)174 457.2 S
(mily only af).1 E(fects outgoing connections on that particular f)-.25
E(amily)-.1 E(.)-.65 E 3.95(ColonOkInAddr [no)102 437.4 R 4.679
E(amily)-.1 E(.)-.65 E 3.95(ColonOkInAddr [no)102 473.4 R 4.679
(short name] If set, colons are acceptable in e-mail addresses \(e.g.,)
7.18 F 3.54(\231host:user\232\). If)174 449.4 R 1.04
7.179 F 3.54(\231host:user\232\). If)174 485.4 R 1.04
(not set, colons indicate the be)3.54 F 1.04
(ginning of a RFC 822 group con-)-.15 F 1.988
(struct \(\231groupname: member1, member2, ... memberN;\232\).)174 461.4
R 1.987(Doubled colons are)6.987 F(al)174 473.4 Q -.1(wa)-.1 G 2.215(ys\
(ginning of a RFC 822 group con-)-.15 F 1.987
(struct \(\231groupname: member1, member2, ... memberN;\232\).)174 497.4
R 1.988(Doubled colons are)6.988 F(al)174 509.4 Q -.1(wa)-.1 G 2.215(ys\
acceptable \(\231nodename::user\232\) and proper route-addr nesting is\
under).1 F(-)-.2 E 1.037(stood \(\231<@relay:user@host>\232\).)174
485.4 R 1.037(Furthermore, this option def)6.037 F 1.036
(aults on if the con-)-.1 F .853(\214guration v)174 497.4 R .853
(ersion le)-.15 F -.15(ve)-.25 G 3.353(li).15 G 3.353(sl)-3.353 G .853
(ess than 6 \(for back compatibility\).)-3.353 F(Ho)5.854 E(we)-.25 E
-.15(ve)-.25 G 1.654 -.4(r, i).15 H 3.354(tm).4 G(ust)-3.354 E(be of)174
509.4 Q 2.5(ff)-.25 G(or full compatibility with RFC 822.)-2.5 E
(ConnectionCacheSize=)102 525.6 Q F2(N)A F1 .242([k] The maximum number\
of open connections that will be cached at a time.)174 537.6 R(The)
5.242 E(def)174 549.6 Q .385(ault is one.)-.1 F .386
under).1 F(-)-.2 E 1.036(stood \(\231<@relay:user@host>\232\).)174
521.4 R 1.037(Furthermore, this option def)6.036 F 1.037
(aults on if the con-)-.1 F .854(\214guration v)174 533.4 R .854
(ersion le)-.15 F -.15(ve)-.25 G 3.354(li).15 G 3.354(sl)-3.354 G .853
(ess than 6 \(for back compatibility\).)-3.354 F(Ho)5.853 E(we)-.25 E
-.15(ve)-.25 G 1.653 -.4(r, i).15 H 3.353(tm).4 G(ust)-3.353 E(be of)174
545.4 Q 2.5(ff)-.25 G(or full compatibility with RFC 822.)-2.5 E
(ConnectionCacheSize=)102 561.6 Q F2(N)A F1 .242([k] The maximum number\
of open connections that will be cached at a time.)174 573.6 R(The)
5.243 E(def)174 585.6 Q .386(ault is one.)-.1 F .386
(This delays closing the current connection until either this in)5.386 F
-.2(vo)-.4 G(ca-).2 E 1.192(tion of)174 561.6 R F2(sendmail)3.692 E F1
1.191(needs to connect to another host or it terminates.)3.692 F 1.191
(Setting it to)6.191 F 2.046(zero def)174 573.6 R 2.046
(aults to the old beha)-.1 F(vior)-.2 E 4.546(,t)-.4 G 2.047
-.2(vo)-.4 G(ca-).2 E 1.191(tion of)174 597.6 R F2(sendmail)3.691 E F1
1.191(needs to connect to another host or it terminates.)3.691 F 1.192
(Setting it to)6.192 F 2.047(zero def)174 609.6 R 2.047
(aults to the old beha)-.1 F(vior)-.2 E 4.546(,t)-.4 G 2.046
(hat is, connections are closed immediately)-4.546 F(.)-.65 E .266(Sinc\
e this consumes \214le descriptors, the connection cache should be k)174
585.6 R .265(ept small: 4)-.1 F(is probably a practical maximum.)174
597.6 Q(ConnectionCacheT)102 613.8 Q(imeout=)-.35 E F2(timeout)A F1 .708
621.6 R .266(ept small: 4)-.1 F(is probably a practical maximum.)174
633.6 Q(ConnectionCacheT)102 649.8 Q(imeout=)-.35 E F2(timeout)A F1 .708
([K] The maximum amount of time a cached connection will be permitted t\
o idle)174 625.8 R 1.083(without acti)174 637.8 R(vity)-.25 E 6.083(.I)
-.65 G 3.583(ft)-6.083 G 1.083(his time is e)-3.583 F 1.082
(xceeded, the connection is immediately closed.)-.15 F .417(This v)174
649.8 R .418(alue should be small \(on the order of ten minutes\).)-.25
F(Before)5.418 E F2(sendmail)2.918 E F1 .418(uses a)2.918 F .508
(cached connection, it al)174 661.8 R -.1(wa)-.1 G .507
(ys sends a RSET command to check the connection; if).1 F .401(this f)
174 673.8 R .401(ails, it reopens the connection.)-.1 F .401(This k)
5.401 F .402(eeps your end from f)-.1 F .402(ailing if the other)-.1 F
1.545(end times out.)174 685.8 R 1.545
(The point of this option is to be a good netw)6.545 F 1.544
(ork neighbor and)-.1 F -.2(avo)174 697.8 S(id using up e).2 E(xcessi)
-.15 E .3 -.15(ve r)-.25 H(esources on the other end.).15 E(The def)5 E
(ault is \214v)-.1 E 2.5(em)-.15 G(inutes.)-2.5 E 0 Cg EP
o idle)174 661.8 R 1.082(without acti)174 673.8 R(vity)-.25 E 6.082(.I)
-.65 G 3.582(ft)-6.082 G 1.083(his time is e)-3.582 F 1.083
(xceeded, the connection is immediately closed.)-.15 F .418(This v)174
685.8 R .418(alue should be small \(on the order of ten minutes\).)-.25
F(Before)5.418 E F2(sendmail)2.918 E F1 .417(uses a)2.917 F .507
(cached connection, it al)174 697.8 R -.1(wa)-.1 G .508
(ys sends a RSET command to check the connection; if).1 F .402(this f)
174 709.8 R .402(ails, it reopens the connection.)-.1 F .401(This k)
5.402 F .401(eeps your end from f)-.1 F .401(ailing if the other)-.1 F
1.544(end times out.)174 721.8 R 1.545
(The point of this option is to be a good netw)6.544 F 1.545
(ork neighbor and)-.1 F 0 Cg EP
%%Page: 64 60
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Bold@0 SF 193.36(SMM:08-64 Sendmail)72 60 R
(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF
(ConnectOnlyT)102 96 Q(o=)-.8 E/F2 10/Times-Italic@0 SF(addr)A(ess)-.37
E F1 .861([no short name] This can be used to o)174 108 R -.15(ve)-.15 G
.862(rride the connection address \(for testing).15 F(purposes\).)174
120 Q(ConnectionRateThrottle=)102 136.2 Q F2(N)A F1 .212
([no short name] If set to a positi)174 148.2 R .511 -.15(ve v)-.25 H
.211(alue, allo)-.1 F 2.711(wn)-.25 G 2.711(om)-2.711 G .211(ore than)
-2.711 F F2(N)2.711 E F1 .211(incoming connec-)2.711 F .132
(tions in a one second period per daemon.)174 160.2 R .132
(This is intended to \215atten out peaks and)5.132 F(allo)174 172.2 Q
(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF -.2(avo)
174 96 S(id using up e).2 E(xcessi)-.15 E .3 -.15(ve r)-.25 H
(esources on the other end.).15 E(The def)5 E(ault is \214v)-.1 E 2.5
(em)-.15 G(inutes.)-2.5 E(ConnectOnlyT)102 112.2 Q(o=)-.8 E/F2 10
/Times-Italic@0 SF(addr)A(ess)-.37 E F1 .862
([no short name] This can be used to o)174 124.2 R -.15(ve)-.15 G .861
(rride the connection address \(for testing).15 F(purposes\).)174 136.2
Q(ConnectionRateThrottle=)102 152.4 Q F2(N)A F1 .211
([no short name] If set to a positi)174 164.4 R .511 -.15(ve v)-.25 H
.211(alue, allo)-.1 F 2.711(wn)-.25 G 2.712(om)-2.711 G .212(ore than)
-2.712 F F2(N)2.712 E F1 .212(incoming connec-)2.712 F .132
(tions in a one second period per daemon.)174 176.4 R .132
(This is intended to \215atten out peaks and)5.132 F(allo)174 188.4 Q
2.5(wt)-.25 G(he load a)-2.5 E -.15(ve)-.2 G(rage checking to cut in.)
.15 E(Def)5 E(aults to zero \(no limits\).)-.1 E(ConnectionRateW)102
188.4 Q(indo)-.4 E(wSize=)-.25 E F2(N)A F1 .459
([no short name] De\214ne the length of the interv)174 200.4 R .458
204.6 Q(indo)-.4 E(wSize=)-.25 E F2(N)A F1 .458
([no short name] De\214ne the length of the interv)174 216.6 R .459
(al for which the number of incom-)-.25 F
(ing connections is maintained.)174 212.4 Q(The def)5 E
(ault is 60 seconds.)-.1 E(ControlSock)102 228.6 Q(etName=)-.1 E F2
(name)A F1 .476([no short name] Name of the control sock)174 240.6 R
.477(et for daemon management.)-.1 F 2.977(Ar)5.477 G(unning)-2.977 E F2
(sendmail)174 252.6 Q F1 1.225
(ing connections is maintained.)174 228.6 Q(The def)5 E
(ault is 60 seconds.)-.1 E(ControlSock)102 244.8 Q(etName=)-.1 E F2
(name)A F1 .477([no short name] Name of the control sock)174 256.8 R
.476(et for daemon management.)-.1 F 2.976(Ar)5.476 G(unning)-2.976 E F2
(sendmail)174 268.8 Q F1 1.225
(daemon can be controlled through this named sock)3.725 F 3.725(et. A)
-.1 F -.25(va)-.74 G 1.225(ilable com-).25 F 2.926(mands are:)174 264.6
-.1 F -.25(va)-.74 G 1.225(ilable com-).25 F 2.926(mands are:)174 280.8
R F2 2.926(help, mstat, r)5.426 F 2.926(estart, shutdown,)-.37 F F1(and)
5.426 E F2(status.)5.426 E F1(The)7.926 E F2(status)5.426 E F1(command)
5.426 E .46(returns the current number of daemon children, the maximum \
number of daemon)174 276.6 R .449
number of daemon)174 292.8 R .449
(children, the free disk space \(in blocks\) of the queue directory)174
288.6 R 2.95(,a)-.65 G .45(nd the load a)-2.95 F -.15(ve)-.2 G -.2(r-)
.15 G .883(age of the machine e)174 300.6 R .883(xpressed as an inte)
-.15 F(ger)-.15 E 5.883(.I)-.55 G 3.383(fn)-5.883 G .882
(ot set, no control sock)-3.383 F .882(et will be)-.1 F -.2(av)174 312.6
S 5.029(ailable. Solaris)-.05 F 2.529(and pre-4.4BSD k)5.029 F 2.529
(ernel users should see the note in send-)-.1 F(mail/README .)174 324.6
Q(CRLFile=)102 340.8 Q F2(name)A F1 .483
304.8 R 2.949(,a)-.65 G .449(nd the load a)-2.949 F -.15(ve)-.2 G -.2
(r-).15 G .882(age of the machine e)174 316.8 R .883
(xpressed as an inte)-.15 F(ger)-.15 E 5.883(.I)-.55 G 3.383(fn)-5.883 G
.883(ot set, no control sock)-3.383 F .883(et will be)-.1 F -.2(av)174
328.8 S 5.03(ailable. Solaris)-.05 F 2.529(and pre-4.4BSD k)5.029 F
2.529(ernel users should see the note in send-)-.1 F(mail/README .)174
340.8 Q(CRLFile=)102 357 Q F2(name)A F1 .482
([no short name] Name of \214le that contains certi\214cate re)9.69 F
-.2(vo)-.25 G .482(cation status, useful for).2 F .792
(X.509v3 authentication.)174 352.8 R .792
(CRL checking requires at least OpenSSL v)5.792 F .793(ersion 0.9.7.)
-.15 F(Note: if a CRLFile is speci\214ed b)174 364.8 Q
-.2(vo)-.25 G .483(cation status, useful for).2 F .793
(X.509v3 authentication.)174 369 R .792
(CRL checking requires at least OpenSSL v)5.793 F .792(ersion 0.9.7.)
-.15 F(Note: if a CRLFile is speci\214ed b)174 381 Q
(ut the \214le is unusable, ST)-.2 E(AR)-.93 E(TTLS is disabled.)-.6 E
(DHP)102 381 Q 10.78(arameters Possible)-.15 F -.25(va)2.5 G(lues are:)
.25 E 67(5u)214 397.2 S(se 512 bit prime)-67 E 67(1u)214 409.2 S
(se 1024 bit prime)-67 E 50.06(none do)214 421.2 R(not use Dif)2.5 E
(\214e-Hellman)-.25 E -.35(NA)214 433.2 S 40.41(ME load).35 F
(DHP)102 397.2 Q 10.78(arameters Possible)-.15 F -.25(va)2.5 G
(lues are:).25 E 67(5u)214 413.4 S(se 512 bit prime)-67 E 67(1u)214
425.4 S(se 1024 bit prime)-67 E 50.06(none do)214 437.4 R(not use Dif)
2.5 E(\214e-Hellman)-.25 E -.35(NA)214 449.4 S 40.41(ME load).35 F
(prime from \214le)2.5 E 2.147
(This is only required if a ciphersuite containing DSA/DH is used.)174
449.4 R 2.147(If `)7.147 F(`5')-.74 E 4.646('i)-.74 G(s)-4.646 E 1.877
(selected, then precomputed, \214x)174 461.4 R 1.877
(ed primes are used.)-.15 F 1.878(This is the def)6.878 F 1.878
(ault for the)-.1 F 1.539(client side.)174 473.4 R 1.539(If `)6.539 F
(`1')-.74 E 4.039('i)-.74 G 4.038(ss)-4.039 G 1.538
(elected, then prime v)-4.038 F 1.538
(alues are computed during startup.)-.25 F .742(This is the def)174
485.4 R .743(ault for the serv)-.1 F .743(er side.)-.15 F .743
(Note: this operation can tak)5.743 F 3.243(eas)-.1 G(igni\214cant)
-3.243 E .838(amount of time on a slo)174 497.4 R 3.337(wm)-.25 G .837
(achine \(se)-3.337 F -.15(ve)-.25 G .837(ral seconds\), b).15 F .837
(ut it is only done once at)-.2 F 2.959(startup. If)174 509.4 R -.74(``)
465.6 R 2.147(If `)7.147 F(`5')-.74 E 4.647('i)-.74 G(s)-4.647 E 1.878
(selected, then precomputed, \214x)174 477.6 R 1.878
(ed primes are used.)-.15 F 1.877(This is the def)6.877 F 1.877
(ault for the)-.1 F 1.538(client side.)174 489.6 R 1.538(If `)6.538 F
(`1')-.74 E 4.038('i)-.74 G 4.038(ss)-4.038 G 1.538
(elected, then prime v)-4.038 F 1.539
(alues are computed during startup.)-.25 F .743(This is the def)174
501.6 R .743(ault for the serv)-.1 F .743(er side.)-.15 F .743
(Note: this operation can tak)5.743 F 3.242(eas)-.1 G(igni\214cant)
-3.242 E .837(amount of time on a slo)174 513.6 R 3.337(wm)-.25 G .837
(achine \(se)-3.337 F -.15(ve)-.25 G .837(ral seconds\), b).15 F .838
(ut it is only done once at)-.2 F 2.959(startup. If)174 525.6 R -.74(``)
2.959 G(none').74 E 2.959('i)-.74 G 2.959(ss)-2.959 G .459
(elected, then TLS ciphersuites containing DSA/DH cannot)-2.959 F 1.337
(be used.)174 521.4 R 1.337(If a \214le name is speci\214ed \(which mus\
t be an absolute path\), then the)6.337 F(primes are read from it.)174
533.4 Q(DaemonPortOptions=)102 549.6 Q F2(options)A F1 .363
([O] Set serv)174 561.6 R .363(er SMTP options.)-.15 F .364
(Each instance of)5.364 F F0(DaemonP)2.864 E(ortOptions)-.2 E F1 .364
(leads to an)2.864 F(additional incoming sock)174 573.6 Q 2.5(et. The)
(elected, then TLS ciphersuites containing DSA/DH cannot)-2.959 F 1.336
(be used.)174 537.6 R 1.337(If a \214le name is speci\214ed \(which mus\
t be an absolute path\), then the)6.336 F(primes are read from it.)174
549.6 Q(DaemonPortOptions=)102 565.8 Q F2(options)A F1 .364
([O] Set serv)174 577.8 R .364(er SMTP options.)-.15 F .364
(Each instance of)5.364 F F0(DaemonP)2.863 E(ortOptions)-.2 E F1 .363
(leads to an)2.863 F(additional incoming sock)174 589.8 Q 2.5(et. The)
-.1 F(options are)2.5 E F2 -.1(ke)2.5 G(y=value)-.2 E F1 2.5(pairs. Kno)
2.5 F(wn k)-.25 E -.15(ey)-.1 G 2.5(sa).15 G(re:)-2.5 E 0 Cg EP
%%Page: 65 61
@ -5664,170 +5672,177 @@ BP
(Deli)2.5 E -.1(ve)-.1 G(ryMode).1 E F1(.)A 31.74(refuseLA RefuseLA)214
228 R(per daemon)2.5 E 34.51(delayLA DelayLA)214 240 R(per daemon)2.5 E
32.29(queueLA QueueLA)214 252 R(per daemon)2.5 E(The)174 268.2 Q/F2 10
/Times-Italic@0 SF(Name)2.681 E F1 -.1(ke)2.681 G 2.681(yi)-.05 G 2.681
(su)-2.681 G .181(sed for error messages and logging.)-2.681 F(The)5.181
E F2(Addr)2.68 E F1 .18(ess mask may be)B 2.907(an)174 280.2 S .407
(umeric address in dot notation or a netw)-2.907 F .407(ork name.)-.1 F
(The)5.407 E F2 -.75(Fa)2.907 G(mily).75 E F1 -.1(ke)2.907 G 2.908(yd)
-.05 G(ef)-2.908 E .408(aults to)-.1 F 1.161(INET \(IPv4\).)174 292.2 R
1.161(IPv6 users who wish to also accept IPv6 connections should add)
6.161 F 2.215(additional F)174 304.2 R(amily=inet6)-.15 E F0(DaemonP)
4.715 E(ortOptions)-.2 E F1 4.715(lines. The)4.715 F F2(InputMailF)4.715
E(ilter)-.45 E(s)-.1 E F1 -.1(ke)4.715 G(y)-.05 E -.15(ove)174 316.2 S
.01(rrides the def).15 F .01
/Times-Italic@0 SF(Name)2.68 E F1 -.1(ke)2.68 G 2.68(yi)-.05 G 2.68(su)
-2.68 G .181(sed for error messages and logging.)-2.68 F(The)5.181 E F2
(Addr)2.681 E F1 .181(ess mask may be)B 2.768(an)174 280.2 S .268
(umeric address in IPv4 dot notation or IPv6 colon notation or a netw)
-2.768 F .267(ork name.)-.1 F .898(Note that if a netw)174 292.2 R .899
(ork name is speci\214ed, only the \214rst IP address returned for it)
-.1 F 2.028(will be used.)174 304.2 R 2.027
(This may cause indeterminate beha)7.028 F 2.027(vior for netw)-.2 F
2.027(ork names that)-.1 F(resolv)174 316.2 Q 2.722(et)-.15 G 2.722(om)
-2.722 G .222(ultiple addresses.)-2.722 F .223
(Therefore, use of an address is recommended.)5.223 F(The)5.223 E F2
-.75(Fa)174 328.2 S(mily).75 E F1 -.1(ke)3.977 G 3.977(yd)-.05 G(ef)
-3.977 E 1.477(aults to INET \(IPv4\).)-.1 F 1.477
(IPv6 users who wish to also accept IPv6)6.477 F .317
(connections should add additional F)174 340.2 R(amily=inet6)-.15 E F0
(DaemonP)2.817 E(ortOptions)-.2 E F1 2.818(lines. The)2.817 F F2
(InputMailF)174 352.2 Q(ilter)-.45 E(s)-.1 E F1 -.1(ke)4.129 G 4.129(yo)
-.05 G -.15(ve)-4.279 G 1.629(rrides the def).15 F 1.628
(ault list of input mail \214lters listed in the)-.1 F F0
(InputMailFilters)2.51 E F1(option.)2.51 E 1.011
(If multiple input mail \214lters are required, the)174 328.2 R 3.511
(ym)-.15 G 1.011(ust be separated by semicolons)-3.511 F .178
(\(not commas\).)174 340.2 R F2(Modi\214er)5.178 E F1 .178
(can be a sequence \(without an)2.678 F 2.677(yd)-.15 G .177
(elimiters\) of the follo)-2.677 F(w-)-.25 E(ing characters:)174 352.2 Q
67.56(aa)214 368.4 S -.1(lwa)-67.56 G(ys require authentication).1 E 67
(bb)214 380.4 S(ind to interf)-67 E
(InputMailFilters)174 364.2 Q F1 2.969(option. If)2.969 F .469
(multiple input mail \214lters are required, the)2.969 F 2.969(ym)-.15 G
.47(ust be)-2.969 F .449(separated by semicolons \(not commas\).)174
376.2 R F2(Modi\214er)5.449 E F1 .449(can be a sequence \(without an)
2.949 F(y)-.15 E(delimiters\) of the follo)174 388.2 Q(wing characters:)
-.25 E 67.56(aa)214 404.4 S -.1(lwa)-67.56 G(ys require authentication)
.1 E 67(bb)214 416.4 S(ind to interf)-67 E
(ace through which mail has been recei)-.1 E -.15(ve)-.25 G(d).15 E
67.56(cp)214 392.4 S(erform hostname canoni\214cation \(.cf\))-67.56 E
68.67(fr)214 404.4 S(equire fully quali\214ed hostname \(.cf\))-68.67 E
68.11(sR)214 416.4 S(un smtps \(SMTP o)-68.11 E -.15(ve)-.15 G 2.5(rS)
.15 G(SL\) instead of smtp)-2.5 E 67(ua)214 428.4 S(llo)-67 E 2.5(wu)
-.25 G(nquali\214ed addresses \(.cf\))-2.5 E 64.78(Ad)214 440.4 S
67.56(cp)214 428.4 S(erform hostname canoni\214cation \(.cf\))-67.56 E
68.67(fr)214 440.4 S(equire fully quali\214ed hostname \(.cf\))-68.67 E
68.11(sR)214 452.4 S(un smtps \(SMTP o)-68.11 E -.15(ve)-.15 G 2.5(rS)
.15 G(SL\) instead of smtp)-2.5 E 67(ua)214 464.4 S(llo)-67 E 2.5(wu)
-.25 G(nquali\214ed addresses \(.cf\))-2.5 E 64.78(Ad)214 476.4 S
(isable A)-64.78 E(UTH \(o)-.55 E -.15(ve)-.15 G
(rrides 'a' modi\214er\)).15 E 65.33(Cd)214 452.4 S(on')-65.33 E 2.5(tp)
-.18 G(erform hostname canoni\214cation)-2.5 E 65.89(Ed)214 464.4 S
(rrides 'a' modi\214er\)).15 E 65.33(Cd)214 488.4 S(on')-65.33 E 2.5(tp)
-.18 G(erform hostname canoni\214cation)-2.5 E 65.89(Ed)214 500.4 S
(isallo)-65.89 E 2.5(wE)-.25 G(TRN \(see RFC 2476\))-2.5 E 64.78(Oo)214
476.4 S(ptional; if opening the sock)-64.78 E(et f)-.1 E(ails ignore it)
-.1 E 66.44(Sd)214 488.4 S(on')-66.44 E 2.5(to)-.18 G -.25(ff)-2.5 G
(er ST).25 E(AR)-.93 E(TTLS)-.6 E 2.412(That is, one w)174 504.6 R 2.413
512.4 S(ptional; if opening the sock)-64.78 E(et f)-.1 E(ails ignore it)
-.1 E 66.44(Sd)214 524.4 S(on')-66.44 E 2.5(to)-.18 G -.25(ff)-2.5 G
(er ST).25 E(AR)-.93 E(TTLS)-.6 E 2.412(That is, one w)174 540.6 R 2.413
(ay to specify a message submission agent \(MSA\) that al)-.1 F -.1(wa)
-.1 G(ys).1 E(requires authentication is:)174 516.6 Q 2.5(OD)214 532.8 S
-.1 G(ys).1 E(requires authentication is:)174 552.6 Q 2.5(OD)214 568.8 S
(aemonPortOptions=Name=MSA, Port=587, M=Ea)-2.5 E .244
(The modi\214ers that are mark)174 549 R .244(ed with "\(.cf\)" ha)-.1 F
(The modi\214ers that are mark)174 585 R .244(ed with "\(.cf\)" ha)-.1 F
.544 -.15(ve o)-.2 H .244(nly ef).15 F .244
(fect in the standard con\214g-)-.25 F .16(uration \214le, in which the)
174 561 R 2.66(ya)-.15 G .16(re a)-2.66 F -.25(va)-.2 G .16(ilable via)
174 597 R 2.66(ya)-.15 G .16(re a)-2.66 F -.25(va)-.2 G .16(ilable via)
.25 F F0(${daemon_\215ags})2.66 E F1 5.16(.N)C .16(otice: Do)-5.16 F F0
(not)2.66 E F1(use)2.66 E .461(the `)174 573 R(`a')-.74 E 2.961('m)-.74
(not)2.66 E F1(use)2.66 E .461(the `)174 609 R(`a')-.74 E 2.961('m)-.74
G .461(odi\214er on a public accessible MT)-2.961 F 2.961(A! It)-.93 F
.46(should only be used for a MSA)2.961 F 2.553
(that is accessed by authorized users for initial mail submission.)174
585 R 2.553(Users must)7.553 F 1.141
(authenticate to use a MSA which has this option turned on.)174 597 R
621 R 2.553(Users must)7.553 F 1.141
(authenticate to use a MSA which has this option turned on.)174 633 R
1.14(The \215ags `)6.14 F(`c')-.74 E 3.64('a)-.74 G(nd)-3.64 E -.74(``)
174 609 S(C').74 E 3.785('c)-.74 G 1.285(an change the def)-3.785 F
174 645 S(C').74 E 3.785('c)-.74 G 1.285(an change the def)-3.785 F
1.286(ault for hostname canoni\214cation in the)-.1 F F2(sendmail.cf)
3.786 E F1(\214le.)3.786 E .765(See the rele)174 621 R -.25(va)-.25 G
3.786 E F1(\214le.)3.786 E .765(See the rele)174 657 R -.25(va)-.25 G
.765(nt documentation for).25 F/F3 9/Times-Roman@0 SF(FEA)3.265 E
(TURE\(nocanonify\))-.999 E F1 5.765(.T)C .765(he modi\214er `)-5.765 F
-1.95(`f ')-.74 F 3.264('d)-.74 G(is-)-3.264 E(allo)174 633 Q .794
-1.95(`f ')-.74 F 3.264('d)-.74 G(is-)-3.264 E(allo)174 669 Q .794
(ws addresses of the form)-.25 F F0(user@host)3.294 E F1 .795
(unless the)3.295 F 3.295(ya)-.15 G .795(re submitted directly)-3.295 F
5.795(.T)-.65 G(he)-5.795 E 2.127(\215ag `)174 645 R(`u')-.74 E 4.627
5.795(.T)-.65 G(he)-5.795 E 2.127(\215ag `)174 681 R(`u')-.74 E 4.627
('a)-.74 G(llo)-4.627 E 2.127
(ws unquali\214ed sender addresses, i.e., those without @host.)-.25 F
-.74(``)7.127 G(b').74 E(')-.74 E 2.791
(forces sendmail to bind to the interf)174 657 R 2.791
(ace through which the e-mail has been)-.1 F(recei)174 669 Q -.15(ve)
(forces sendmail to bind to the interf)174 693 R 2.791
(ace through which the e-mail has been)-.1 F(recei)174 705 Q -.15(ve)
-.25 G 4.369(df).15 G 1.869(or the outgoing connection.)-4.369 F F0 -1.2
(WA)6.869 G(RNING:)1.2 E F1 1.869(Use `)4.369 F(`b')-.74 E 4.369('o)-.74
G 1.869(nly if outgoing)-4.369 F .517
(mail can be routed through the incoming connection')174 681 R 3.017(si)
-.55 G(nterf)-3.017 E .518(ace to its destination.)-.1 F .119(No attemp\
t is made to catch problems due to a miscon\214guration of this paramet\
er)174 693 R(,)-.4 E 1.177
(use it only for virtual hosting where each virtual interf)174 705 R
1.177(ace can connect to e)-.1 F -.15(ve)-.25 G(ry).15 E 10.247
(possible location.)174 717 R 10.246(This will also o)15.247 F -.15(ve)
-.15 G 10.246(rride possible settings via).15 F 0 Cg EP
(mail can be routed through the incoming connection')174 717 R 3.017(si)
-.55 G(nterf)-3.017 E .518(ace to its destination.)-.1 F 0 Cg EP
%%Page: 66 62
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Bold@0 SF 193.36(SMM:08-66 Sendmail)72 60 R
(Installation and Operation Guide)2.5 E(ClientP)174 96 Q(ortOptions.)-.2
E/F1 10/Times-Roman@0 SF(Note,)8.975 E/F2 10/Times-Italic@0 SF(sendmail)
6.475 E F1 3.975(will listen on a ne)6.475 F 6.475(ws)-.25 G(ock)-6.475
E 3.975(et for each)-.1 F .746(occurence of the)174 108 R F0(DaemonP)
3.246 E(ortOptions)-.2 E F1 .746(option in a con\214guration \214le.)
3.246 F .746(The modi-)5.746 F .399(\214er `)174 120 R(`O')-.74 E 2.899
('c)-.74 G .399(auses sendmail to ignore a sock)-2.899 F .399
(et if it can')-.1 F 2.9(tb)-.18 G 2.9(eo)-2.9 G 2.9(pened. This)-2.9 F
.4(applies to)2.9 F -.1(fa)174 132 S(ilures from the sock).1 E
(et\(2\) and bind\(2\) calls.)-.1 E(Def)102 148.2 Q 2.95
(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF .119(No \
attempt is made to catch problems due to a miscon\214guration of this p\
arameter)174 96 R(,)-.4 E 1.177
(use it only for virtual hosting where each virtual interf)174 108 R
1.177(ace can connect to e)-.1 F -.15(ve)-.25 G(ry).15 E 2.002
(possible location.)174 120 R 2.001(This will also o)7.001 F -.15(ve)
-.15 G 2.001(rride possible settings via).15 F F0(ClientP)4.501 E
(ortOp-)-.2 E(tions.)174 132 Q F1(Note,)5.486 E/F2 10/Times-Italic@0 SF
(sendmail)2.986 E F1 .486(will listen on a ne)2.986 F 2.986(ws)-.25 G
(ock)-2.986 E .487(et for each occurence of the)-.1 F F0(Dae-)2.987 E
(monP)174 144 Q(ortOptions)-.2 E F1 .838
(option in a con\214guration \214le.)3.338 F .838(The modi\214er `)5.838
F(`O')-.74 E 3.338('c)-.74 G .838(auses send-)-3.338 F 1.417
(mail to ignore a sock)174 156 R 1.417(et if it can')-.1 F 3.917(tb)-.18
G 3.917(eo)-3.917 G 3.917(pened. This)-3.917 F 1.418(applies to f)3.918
F 1.418(ailures from the)-.1 F(sock)174 168 Q
(et\(2\) and bind\(2\) calls.)-.1 E(Def)102 184.2 Q 2.95
(aultAuthInfo [no)-.1 F .181(short name] Filename that contains def)
2.681 F .181(ault authentication information for out-)-.1 F 1.737(going\
connections. This \214le must contain the user id, the authorization i\
d, the)174 160.2 R(passw)174 172.2 Q 1.562(ord \(plain te)-.1 F 1.561
d, the)174 196.2 R(passw)174 208.2 Q 1.562(ord \(plain te)-.1 F 1.561
(xt\), the realm and the list of mechanisms to use on separate)-.15 F
.287(lines and must be readable by root \(or the trusted user\) only)174
184.2 R 5.288(.I)-.65 G 2.788(fn)-5.288 G 2.788(or)-2.788 G .288
(ealm is speci-)-2.788 F(\214ed,)174 196.2 Q F0($j)3.705 E F1 1.205
220.2 R 5.288(.I)-.65 G 2.788(fn)-5.288 G 2.788(or)-2.788 G .288
(ealm is speci-)-2.788 F(\214ed,)174 232.2 Q F0($j)3.705 E F1 1.205
(is used.)3.705 F 1.205(If no mechanisms are speci\214ed, the list gi)
6.205 F -.15(ve)-.25 G 3.704(nb).15 G(y)-3.704 E F0 -.5(Au)3.704 G
(thMecha-).5 E(nisms)174 208.2 Q F1 1.371(is used.)3.871 F 1.372
(thMecha-).5 E(nisms)174 244.2 Q F1 1.371(is used.)3.871 F 1.372
(Notice: this option is deprecated and will be remo)6.371 F -.15(ve)-.15
G 3.872(di).15 G 3.872(nf)-3.872 G(uture)-3.872 E -.15(ve)174 220.2 S
G 3.872(di).15 G 3.872(nf)-3.872 G(uture)-3.872 E -.15(ve)174 256.2 S
3.411(rsions. Moreo).15 F -.15(ve)-.15 G 1.711 -.4(r, i).15 H 3.411(td)
.4 G(oesn')-3.411 E 3.411(tw)-.18 G .911(ork for the MSP since it can')
-3.511 F 3.41(tr)-.18 G .91(ead the \214le \(the)-3.41 F .014
(\214le must not be group/w)174 232.2 R .014(orld-readable otherwise)-.1
(\214le must not be group/w)174 268.2 R .014(orld-readable otherwise)-.1
F F2(sendmail)2.514 E F1 .014(will complain\).)2.514 F .014(Use the)
5.014 F 1.2(authinfo ruleset instead which pro)174 244.2 R 1.2
5.014 F 1.2(authinfo ruleset instead which pro)174 280.2 R 1.2
(vides more control o)-.15 F -.15(ve)-.15 G 3.7(rt).15 G 1.2
(he usage of the data)-3.7 F(an)174 256.2 Q(yw)-.15 E(ay)-.1 E(.)-.65 E
(Def)102 272.4 Q(aultCharSet=)-.1 E F2 -.15(ch)C(ar).15 E(set)-.1 E F1
.16([no short name] When a message that has 8-bit characters b)174 284.4
R .161(ut is not in MIME for)-.2 F(-)-.2 E .495(mat is con)174 296.4 R
(he usage of the data)-3.7 F(an)174 292.2 Q(yw)-.15 E(ay)-.1 E(.)-.65 E
(Def)102 308.4 Q(aultCharSet=)-.1 E F2 -.15(ch)C(ar).15 E(set)-.1 E F1
.16([no short name] When a message that has 8-bit characters b)174 320.4
R .161(ut is not in MIME for)-.2 F(-)-.2 E .495(mat is con)174 332.4 R
-.15(ve)-.4 G .495
(rted to MIME \(see the EightBitMode option\) a character set must be)
.15 F .487(included in the Content-T)174 308.4 R .487(ype: header)-.8 F
.15 F .487(included in the Content-T)174 344.4 R .487(ype: header)-.8 F
5.487(.T)-.55 G .488(his character set is normally set from the)-5.487 F
.133(Charset= \214eld of the mailer descriptor)174 320.4 R 5.133(.I)-.55
.133(Charset= \214eld of the mailer descriptor)174 356.4 R 5.133(.I)-.55
G 2.633(ft)-5.133 G .133(hat is not set, the v)-2.633 F .133
(alue of this option is)-.25 F 2.5(used. If)174 332.4 R
(alue of this option is)-.25 F 2.5(used. If)174 368.4 R
(this option is not set, the v)2.5 E(alue \231unkno)-.25 E
(wn-8bit\232 is used.)-.25 E(DataFileBuf)102 348.6 Q(ferSize=)-.25 E F2
(thr)A(eshold)-.37 E F1 .011([no short name] Set the)174 360.6 R F2(thr)
(wn-8bit\232 is used.)-.25 E(DataFileBuf)102 384.6 Q(ferSize=)-.25 E F2
(thr)A(eshold)-.37 E F1 .011([no short name] Set the)174 396.6 R F2(thr)
2.511 E(eshold)-.37 E F1 2.511(,i)C 2.512(nb)-2.511 G .012
(ytes, before a memory-based queue data \214le)-2.512 F
(becomes disk-based.)174 372.6 Q(The def)5 E(ault is 4096 bytes.)-.1 E
(DeadLetterDrop=)102 388.8 Q F2(\214le)A F1 .535([no short name] De\214\
(becomes disk-based.)174 408.6 Q(The def)5 E(ault is 4096 bytes.)-.1 E
(DeadLetterDrop=)102 424.8 Q F2(\214le)A F1 .535([no short name] De\214\
nes the location of the system-wide dead.letter \214le, formerly)174
400.8 R .743(hardcoded to /usr/tmp/dead.letter)174 412.8 R 5.743(.I)-.55
436.8 R .743(hardcoded to /usr/tmp/dead.letter)174 448.8 R 5.743(.I)-.55
G 3.243(ft)-5.743 G .744(his option is not set \(the def)-3.243 F .744
(ault\), sendmail)-.1 F 1.465(will not attempt to sa)174 424.8 R 1.764
(ault\), sendmail)-.1 F 1.465(will not attempt to sa)174 460.8 R 1.764
-.15(ve t)-.2 H 3.964(oas).15 G 1.464
(ystem-wide dead.letter \214le in the e)-3.964 F -.15(ve)-.25 G 1.464
(nt it cannot).15 F .575(bounce the mail to the user or postmaster)174
436.8 R 5.575(.I)-.55 G .575(nstead, it will rename the qf \214le as it)
472.8 R 5.575(.I)-.55 G .575(nstead, it will rename the qf \214le as it)
-5.575 F
(has in the past when the dead.letter \214le could not be opened.)174
448.8 Q(Def)102 465 Q(aultUser=)-.1 E F2(user:gr)A(oup)-.45 E F1 .014
([u] Set the def)174 477 R .014(ault userid for mailers to)-.1 F F2
484.8 Q(Def)102 501 Q(aultUser=)-.1 E F2(user:gr)A(oup)-.45 E F1 .014
([u] Set the def)174 513 R .014(ault userid for mailers to)-.1 F F2
(user:gr)2.513 E(oup)-.45 E F1 5.013(.I)C(f)-5.013 E F2(gr)2.513 E(oup)
-.45 E F1 .013(is omitted and)2.513 F F2(user)2.513 E F1(is)2.513 E
4.306(au)174 489 S 1.807
4.306(au)174 525 S 1.807
(ser name \(as opposed to a numeric user id\) the def)-4.306 F 1.807
(ault group listed in the)-.1 F 1.153
(/etc/passwd \214le for that user is used as the def)174 501 R 1.153
(/etc/passwd \214le for that user is used as the def)174 537 R 1.153
(ault group.)-.1 F(Both)6.153 E F2(user)3.653 E F1(and)3.652 E F2(gr)
3.652 E(oup)-.45 E F1 1.152(may be numeric.)174 513 R 1.152
3.652 E(oup)-.45 E F1 1.152(may be numeric.)174 549 R 1.152
(Mailers without the)6.152 F F2(S)3.652 E F1 1.152
(\215ag in the mailer de\214nition will run as)3.652 F .142(this user)
174 527 R 5.142(.D)-.55 G(ef)-5.142 E .142(aults to 1:1.)-.1 F .142
174 563 R 5.142(.D)-.55 G(ef)-5.142 E .142(aults to 1:1.)-.1 F .142
(The v)5.142 F .142(alue can also be gi)-.25 F -.15(ve)-.25 G 2.642(na)
.15 G 2.642(sas)-2.642 G .142(ymbolic user name.)-2.642 F/F3 7
/Times-Roman@0 SF(19)-4 I F1(DelayLA=)102 543.2 Q F2(LA)A F1 .996
/Times-Roman@0 SF(19)-4 I F1(DelayLA=)102 579.2 Q F2(LA)A F1 .996
([no short name] When the system load a)17.48 F -.15(ve)-.2 G .996
(rage e).15 F(xceeds)-.15 E F2(LA)3.496 E F1(,)A F2(sendmail)3.496 E F1
.996(will sleep)3.496 F
(for one second on most SMTP commands and before accepting connections.)
174 555.2 Q(Deli)102 571.4 Q -.15(ve)-.25 G(rByMin=).15 E F2(time)A F1
.203([0] Set minimum time for Deli)174 583.4 R -.15(ve)-.25 G 2.702(rB)
174 591.2 Q(Deli)102 607.4 Q -.15(ve)-.25 G(rByMin=).15 E F2(time)A F1
.203([0] Set minimum time for Deli)174 619.4 R -.15(ve)-.25 G 2.702(rB)
.15 G 2.702(yS)-2.702 G .202(MTP Service Extension \(RFC 2852\).)-2.702
F .202(If 0,)5.202 F .486(no time is listed, if less than 0, the e)174
595.4 R .487(xtension is not of)-.15 F .487
631.4 R .487(xtension is not of)-.15 F .487
(fered, if greater than 0, it is)-.25 F
(listed as minimum time for the EHLO k)174 607.4 Q -.15(ey)-.1 G -.1(wo)
.15 G(rd DELIVERBY).1 E(.)-1.29 E(Deli)102 623.6 Q -.15(ve)-.25 G
(listed as minimum time for the EHLO k)174 643.4 Q -.15(ey)-.1 G -.1(wo)
.15 G(rd DELIVERBY).1 E(.)-1.29 E(Deli)102 659.6 Q -.15(ve)-.25 G
(ryMode=).15 E F2(x)A F1([d] Deli)4 E -.15(ve)-.25 G 2.5(ri).15 G 2.5
(nm)-2.5 G(ode)-2.5 E F2(x)2.5 E F1 5(.L)C -2.25 -.15(eg a)-5 H 2.5(lm)
.15 G(odes are:)-2.5 E .32 LW 76 678.8 72 678.8 DL 80 678.8 76 678.8 DL

View File

@ -6,7 +6,7 @@
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*
* $Id: config.h,v 1.47 2004/10/26 21:41:07 gshapiro Exp $
* $Id: config.h,v 1.48 2013/03/22 22:48:57 gshapiro Exp $
*/
/*
@ -24,14 +24,16 @@
/*
** SM_CONF_STDBOOL_H is 1 if <stdbool.h> exists
**
** Note, unlike gcc, clang doesn't apply full prototypes to K&R definitions.
*/
# ifndef SM_CONF_STDBOOL_H
# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# if !defined(__clang__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define SM_CONF_STDBOOL_H 1
# else /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
# else /* !defined(__clang__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
# define SM_CONF_STDBOOL_H 0
# endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
# endif /* !defined(__clang__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
# endif /* ! SM_CONF_STDBOOL_H */
/*

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000-2002, 2004 Sendmail, Inc. and its suppliers.
* Copyright (c) 2000-2002, 2004, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1990
* The Regents of the University of California. All rights reserved.
@ -11,7 +11,7 @@
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*
* $Id: io.h,v 1.24 2004/03/03 19:14:49 ca Exp $
* $Id: io.h,v 1.25 2013/03/12 15:24:49 ca Exp $
*/
/*-
@ -269,7 +269,7 @@ int sm_io_close __P((SM_FILE_T *, int SM_NONVOLATILE));
SM_FILE_T *sm_io_dup __P((SM_FILE_T *));
int sm_io_eof __P((SM_FILE_T *));
int sm_io_error __P((SM_FILE_T *));
char *sm_io_fgets __P((SM_FILE_T *, int, char *, int));
int sm_io_fgets __P((SM_FILE_T *, int, char *, int));
int sm_io_flush __P((SM_FILE_T *, int SM_NONVOLATILE));
int PRINTFLIKE(3, 4)

View File

@ -1,4 +1,4 @@
dnl $Id: Makefile.m4,v 8.88 2012/09/25 17:40:32 ca Exp $
dnl $Id: Makefile.m4,v 8.92 2013/04/16 20:19:54 ca Exp $
include(confBUILDTOOLSDIR`/M4/switch.m4')
dnl only required for compilation of EXTRAS

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1999-2001, 2004, 2010 Sendmail, Inc. and its suppliers.
* Copyright (c) 1999-2001, 2004, 2010, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
SM_RCSID("@(#)$Id: sm_gethost.c,v 8.29 2010/07/27 01:09:31 ca Exp $")
SM_RCSID("@(#)$Id: sm_gethost.c,v 8.30 2013/02/22 22:43:33 gshapiro Exp $")
#include <sendmail.h>
#if NETINET || NETINET6
@ -101,7 +101,12 @@ mi_gethostbyname(name, family)
# endif /* SOLARIS == 20300 || SOLARIS == 203 */
#else /* (SOLARIS > 10000 && SOLARIS < 20400) || (defined(SOLARIS) && SOLARIS < 204) || (defined(sony_news) && defined(__svr4)) */
# if NETINET6
int flags = AI_DEFAULT|AI_ALL;
# ifndef SM_IPNODEBYNAME_FLAGS
/* For IPv4-mapped addresses, use: AI_DEFAULT|AI_ALL */
# define SM_IPNODEBYNAME_FLAGS AI_ADDRCONFIG
# endif /* SM_IPNODEBYNAME_FLAGS */
int flags = SM_IPNODEBYNAME_FLAGS;
int err;
# endif /* NETINET6 */

View File

@ -1,4 +1,4 @@
dnl $Id: Makefile.m4,v 1.72 2006/08/16 21:06:31 ca Exp $
dnl $Id: Makefile.m4,v 1.73 2013/03/12 15:24:50 ca Exp $
define(`confREQUIRE_LIBUNIX')
include(confBUILDTOOLSDIR`/M4/switch.m4')
@ -18,6 +18,7 @@ smcheck(`t-exc', `compile-run')
smcheck(`t-rpool', `compile-run')
smcheck(`t-string', `compile-run')
smcheck(`t-smstdio', `compile-run')
smcheck(`t-fget', `compile-run')
smcheck(`t-match', `compile-run')
smcheck(`t-strio', `compile-run')
smcheck(`t-heap', `compile-run')

View File

@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
SM_RCSID("@(#)$Id: cf.c,v 1.6 2001/09/11 04:04:47 gshapiro Exp $")
SM_RCSID("@(#)$Id: cf.c,v 1.7 2013/03/12 15:24:50 ca Exp $")
#include <ctype.h>
#include <errno.h>
@ -54,7 +54,7 @@ sm_cf_getopt(path, optc, optv)
if (cfp == NULL)
return errno;
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
p = strchr(buf, '\n');
if (p != NULL)

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
* Copyright (c) 2000-2001, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
@ -13,7 +13,7 @@
*/
#include <sm/gen.h>
SM_RCSID("@(#)$Id: fget.c,v 1.24 2001/09/11 04:04:48 gshapiro Exp $")
SM_RCSID("@(#)$Id: fget.c,v 1.25 2013/03/12 15:24:50 ca Exp $")
#include <stdlib.h>
#include <string.h>
#include <sm/io.h>
@ -33,31 +33,32 @@ SM_RCSID("@(#)$Id: fget.c,v 1.24 2001/09/11 04:04:48 gshapiro Exp $")
** n -- size of 'buf'
**
** Returns:
** success: returns value of 'buf'
** failure: NULL (no characters were read)
** timeout: NULL and errno set to EAGAIN
** success: number of characters
** failure: -1
** timeout: -1 and errno set to EAGAIN
**
** Side Effects:
** may move the file pointer
*/
char *
int
sm_io_fgets(fp, timeout, buf, n)
register SM_FILE_T *fp;
int timeout;
char *buf;
register int n;
{
register int len;
register char *s;
register unsigned char *p, *t;
int len, r;
char *s;
unsigned char *p, *t;
SM_REQUIRE_ISA(fp, SmFileMagic);
if (n <= 0) /* sanity check */
return NULL;
return -1;
s = buf;
n--; /* leave space for NUL */
r = 0;
while (n > 0)
{
/* If the buffer is empty, refill it. */
@ -73,7 +74,7 @@ sm_io_fgets(fp, timeout, buf, n)
{
/* EOF/error: stop with partial or no line */
if (s == buf)
return NULL;
return -1;
break;
}
len = fp->f_r;
@ -93,18 +94,20 @@ sm_io_fgets(fp, timeout, buf, n)
if (t != NULL)
{
len = ++t - p;
r += len;
fp->f_r -= len;
fp->f_p = t;
(void) memcpy((void *) s, (void *) p, len);
s[len] = 0;
return buf;
return r;
}
fp->f_r -= len;
fp->f_p += len;
(void) memcpy((void *) s, (void *) p, len);
s += len;
r += len;
n -= len;
}
*s = 0;
return buf;
return r;
}

86
libsm/t-fget.c Normal file
View File

@ -0,0 +1,86 @@
/*
* Copyright (c) 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*/
#include <sm/gen.h>
SM_IDSTR(id, "@(#)$Id: t-fget.c,v 1.1 2013/03/12 15:24:50 ca Exp $")
#include <sm/io.h>
#include <sm/string.h>
#include <sm/test.h>
#include <errno.h>
void
check(char *msg, int l)
{
SM_FILE_T *wfp, *rfp;
char buf[256];
size_t n;
int r, i;
static char fn[] = "tfget";
wfp = sm_io_open(SmFtStdio, SM_TIME_DEFAULT, fn,
SM_IO_WRONLY_B, NULL);
SM_TEST(wfp != NULL);
for (i = 0; i < l; i++)
{
r = sm_io_putc(wfp, SM_TIME_DEFAULT, msg[i]);
SM_TEST(r >= 0);
}
r = sm_io_close(wfp, SM_TIME_DEFAULT);
SM_TEST(r == 0);
rfp = sm_io_open(SmFtStdio, SM_TIME_DEFAULT, fn,
SM_IO_RDONLY_B, NULL);
SM_TEST(rfp != NULL);
n = sizeof(buf);
r = sm_io_fgets(rfp, SM_TIME_DEFAULT, buf, n);
if (l == 0)
{
SM_TEST(r == -1);
SM_TEST(errno == 0);
}
else
{
SM_TEST(r == l);
if (r != l)
fprintf(stderr, "buf='%s', in='%s', r=%d, l=%d\n",
buf, msg, r, l);
}
SM_TEST(memcmp(buf, msg, l) == 0);
r = sm_io_close(rfp, SM_TIME_DEFAULT);
SM_TEST(r == 0);
}
int
main(argc, argv)
int argc;
char **argv;
{
char res[256];
int l;
sm_test_begin(argc, argv, "test fget");
check("", strlen(""));
check("\n", strlen("\n"));
check("test\n", strlen("test\n"));
l = snprintf(res, sizeof(res), "%c%s\n", '\0', "test ing");
check(res, l);
l = snprintf(res, sizeof(res), "%c%s%c\n", '\0', "test ing", '\0');
check(res, l);
l = snprintf(res, sizeof(res), "%c%s%c%s\n",
'\0', "test ing", '\0', "eol");
check(res, l);
return sm_test_end();
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2002, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@ -20,7 +20,7 @@ SM_IDSTR(copyright,
Copyright (c) 1988, 1993\n\
The Regents of the University of California. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: mailstats.c,v 8.100 2002/06/27 23:24:06 gshapiro Exp $")
SM_IDSTR(id, "@(#)$Id: mailstats.c,v 8.102 2013/03/12 15:24:50 ca Exp $")
#include <unistd.h>
#include <stddef.h>
@ -68,13 +68,14 @@ main(argc, argv)
extern char *ctime();
extern char *optarg;
extern int optind;
# define MSOPTS "cC:f:opP"
cfile = getcfname(0, 0, SM_GET_SENDMAIL_CF, NULL);
sfile = NULL;
mnames = true;
progmode = false;
trunc = false;
while ((ch = getopt(argc, argv, "cC:f:opP")) != -1)
while ((ch = getopt(argc, argv, MSOPTS)) != -1)
{
switch (ch)
{
@ -90,6 +91,7 @@ main(argc, argv)
sfile = optarg;
break;
case 'o':
mnames = false;
break;
@ -102,6 +104,7 @@ main(argc, argv)
progmode = true;
break;
case '?':
default:
usage:
@ -131,7 +134,7 @@ main(argc, argv)
(void) sm_strlcpy(mtable[mno++], "*file*", MNAMELEN + 1);
(void) sm_strlcpy(mtable[mno++], "*include*", MNAMELEN + 1);
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register char *b;
char *s;
@ -270,6 +273,7 @@ main(argc, argv)
}
}
if (progmode)
{
(void) time(&now);

View File

@ -20,7 +20,7 @@ SM_IDSTR(copyright,
Copyright (c) 1992, 1993\n\
The Regents of the University of California. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: makemap.c,v 8.180 2010/11/23 02:35:08 gshapiro Exp $")
SM_IDSTR(id, "@(#)$Id: makemap.c,v 8.181 2013/03/12 15:24:51 ca Exp $")
#include <sys/types.h>
@ -242,7 +242,7 @@ main(argc, argv)
cfile, sm_errstring(errno));
exit(EX_NOINPUT);
}
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register char *b;
@ -392,7 +392,7 @@ main(argc, argv)
{
lineno = 0;
while (sm_io_fgets(smioin, SM_TIME_DEFAULT, ibuf, sizeof ibuf)
!= NULL)
>= 0)
{
register char *p;

View File

@ -20,7 +20,7 @@ SM_IDSTR(copyright,
Copyright (c) 1988, 1993\n\
The Regents of the University of California. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: praliases.c,v 8.96 2008/07/10 20:13:10 ca Exp $")
SM_IDSTR(id, "@(#)$Id: praliases.c,v 8.97 2013/03/12 15:24:51 ca Exp $")
#include <sys/types.h>
#include <ctype.h>
@ -122,7 +122,7 @@ main(argc, argv)
exit(EX_NOINPUT);
}
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register char *b, *p;

View File

@ -18,7 +18,7 @@ SM_IDSTR(copyright,
Copyright (c) 1988, 1993\n\
The Regents of the University of California. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: rmail.c,v 8.61 2001/09/18 21:45:29 gshapiro Exp $")
SM_IDSTR(id, "@(#)$Id: rmail.c,v 8.62 2013/03/12 15:24:52 ca Exp $")
/*
* RMAIL -- UUCP mail server.
@ -134,7 +134,7 @@ main(argc, argv)
{
/* Get and nul-terminate the line. */
if (sm_io_fgets(smioin, SM_TIME_DEFAULT, lbuf,
sizeof(lbuf)) == NULL)
sizeof(lbuf)) < 0)
err(EX_DATAERR, "no data");
if ((p = strchr(lbuf, '\n')) == NULL)
err(EX_DATAERR, "line too long");
@ -379,7 +379,7 @@ main(argc, argv)
{
(void) sm_io_fprintf(fp, SM_TIME_DEFAULT, "%s", lbuf);
} while (sm_io_fgets(smioin, SM_TIME_DEFAULT, lbuf,
sizeof(lbuf)) != NULL);
sizeof(lbuf)) >= 0);
if (sm_io_error(smioin))
err(EX_TEMPFAIL, "stdin: %s", sm_errstring(errno));

View File

@ -1,4 +1,4 @@
dnl $Id: Makefile.m4,v 8.132 2012/09/11 20:02:44 ca Exp $
dnl $Id: Makefile.m4,v 8.139 2013/04/17 17:15:54 ca Exp $
include(confBUILDTOOLSDIR`/M4/switch.m4')
define(`confREQUIRE_LIBSM', `true')

View File

@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: alias.c,v 8.219 2006/10/24 18:04:09 ca Exp $")
SM_RCSID("@(#)$Id: alias.c,v 8.220 2013/03/12 15:24:52 ca Exp $")
#define SEPARATOR ':'
# define ALIAS_SPEC_SEPARATORS " ,/:"
@ -657,7 +657,7 @@ readaliases(map, af, announcestats, logstats)
LineNumber = 0;
naliases = bytes = longest = 0;
skipping = false;
while (sm_io_fgets(af, SM_TIME_DEFAULT, line, sizeof(line)) != NULL)
while (sm_io_fgets(af, SM_TIME_DEFAULT, line, sizeof(line)) >= 0)
{
int lhssize, rhssize;
int c;
@ -670,7 +670,7 @@ readaliases(map, af, announcestats, logstats)
{
p--;
if (sm_io_fgets(af, SM_TIME_DEFAULT, p,
SPACELEFT(line, p)) == NULL)
SPACELEFT(line, p)) < 0)
break;
LineNumber++;
p = strchr(p, '\n');
@ -780,7 +780,7 @@ readaliases(map, af, announcestats, logstats)
/* read continuation line */
if (sm_io_fgets(af, SM_TIME_DEFAULT, p,
sizeof(line) - (p-line)) == NULL)
sizeof(line) - (p-line)) < 0)
break;
LineNumber++;

View File

@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: collect.c,v 8.285 2012/06/14 23:54:02 ca Exp $")
SM_RCSID("@(#)$Id: collect.c,v 8.286 2013/03/15 17:54:12 ca Exp $")
static void eatfrom __P((char *volatile, ENVELOPE *));
static void collect_doheader __P((ENVELOPE *));
@ -300,6 +300,9 @@ collect(fp, smtpmode, hdrp, e, rsetsize)
unsigned char *pbp;
unsigned char peekbuf[8];
char bufbuf[MAXLINE];
#if _FFR_REJECT_NUL_BYTE
bool hasNUL; /* has at least one NUL input byte */
#endif /* _FFR_REJECT_NUL_BYTE */
df = NULL;
ignrdot = smtpmode ? false : IgnrDot;
@ -315,6 +318,9 @@ collect(fp, smtpmode, hdrp, e, rsetsize)
hdrslen = 0;
numhdrs = 0;
HasEightBits = false;
#if _FFR_REJECT_NUL_BYTE
hasNUL = false;
#endif /* _FFR_REJECT_NUL_BYTE */
buf = bp = bufbuf;
buflen = sizeof(bufbuf);
pbp = peekbuf;
@ -403,6 +409,10 @@ collect(fp, smtpmode, hdrp, e, rsetsize)
SM_TIME_DEFAULT,
c);
}
#if _FFR_REJECT_NUL_BYTE
if (c == '\0')
hasNUL = true;
#endif /* _FFR_REJECT_NUL_BYTE */
if (c == SM_IO_EOF)
goto readerr;
if (SevenBitInput)
@ -893,6 +903,14 @@ collect(fp, smtpmode, hdrp, e, rsetsize)
e->e_bodytype = "7BIT";
}
#if _FFR_REJECT_NUL_BYTE
if (hasNUL && RejectNUL)
{
e->e_status = "5.6.1";
usrerrenh(e->e_status, "554 NUL byte not allowed");
}
#endif /* _FFR_REJECT_NUL_BYTE */
if (SuperSafe == SAFE_REALLY && !bitset(EF_FATALERRS, e->e_flags))
{
char *dfname = queuename(e, DATAFL_LETTER);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: conf.c,v 8.1176 2012/12/07 03:59:54 ca Exp $")
SM_RCSID("@(#)$Id: conf.c,v 8.1182 2013/04/05 17:39:09 ca Exp $")
#include <sm/sendmail.h>
#include <sendmail/pathnames.h>
@ -967,7 +967,7 @@ switch_map_find(service, maptype, mapreturn)
char buf[MAXLINE];
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf,
sizeof(buf)) != NULL)
sizeof(buf)) >= 0)
{
register char *p;
@ -2848,7 +2848,7 @@ uname(name)
char buf[MAXLINE];
while (sm_io_fgets(file, SM_TIME_DEFAULT,
buf, sizeof(buf)) != NULL)
buf, sizeof(buf)) >= 0)
{
if (sm_io_sscanf(buf, "#define sysname \"%*[^\"]\"",
NODE_LENGTH, name->nodename) > 0)
@ -3222,7 +3222,7 @@ usershellok(user, shell)
return false;
}
while (sm_io_fgets(shellf, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(shellf, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register char *p, *q;
@ -4294,7 +4294,12 @@ sm_gethostbyname(name, family)
#else /* (SOLARIS > 10000 && SOLARIS < 20400) || (defined(SOLARIS) && SOLARIS < 204) || (defined(sony_news) && defined(__svr4)) */
int nmaps;
# if NETINET6
int flags = AI_DEFAULT|AI_ALL;
# ifndef SM_IPNODEBYNAME_FLAGS
/* For IPv4-mapped addresses, use: AI_DEFAULT|AI_ALL */
# define SM_IPNODEBYNAME_FLAGS AI_ADDRCONFIG
# endif /* SM_IPNODEBYNAME_FLAGS */
int flags = SM_IPNODEBYNAME_FLAGS;
int err;
# endif /* NETINET6 */
char *maptype[MAXMAPSTACK];
@ -6004,6 +6009,23 @@ char *OsCompileOptions[] =
#if SECUREWARE
"SECUREWARE",
#endif /* SECUREWARE */
#if SFS_TYPE == SFS_4ARGS
"SFS_4ARGS",
#elif SFS_TYPE == SFS_MOUNT
"SFS_MOUNT",
#elif SFS_TYPE == SFS_NONE
"SFS_NONE",
#elif SFS_TYPE == SFS_NT
"SFS_NT",
#elif SFS_TYPE == SFS_STATFS
"SFS_STATFS",
#elif SFS_TYPE == SFS_STATVFS
"SFS_STATVFS",
#elif SFS_TYPE == SFS_USTAT
"SFS_USTAT",
#elif SFS_TYPE == SFS_VFS
"SFS_VFS",
#endif
#if SHARE_V1
"SHARE_V1",
#endif /* SHARE_V1 */
@ -6184,6 +6206,10 @@ char *FFRCompileOptions[] =
"_FFR_GETHBN_ExFILE",
#endif /* _FFR_GETHBN_ExFILE */
#if _FFR_FIPSMODE
/* FIPSMode (if supported by OpenSSL library) */
"_FFR_FIPSMODE",
#endif /* _FFR_FIPSMODE */
#if _FFR_FIX_DASHT
/*
** If using -t, force not sending to argv recipients, even
@ -6363,6 +6389,10 @@ char *FFRCompileOptions[] =
"_FFR_REDIRECTEMPTY",
#endif /* _FFR_REDIRECTEMPTY */
#if _FFR_REJECT_NUL_BYTE
/* reject NUL bytes in body */
"_FFR_REJECT_NUL_BYTE",
#endif /* _FFR_REJECT_NUL_BYTE */
#if _FFR_RESET_MACRO_GLOBALS
/* Allow macro 'j' to be set dynamically via rulesets. */
"_FFR_RESET_MACRO_GLOBALS",

View File

@ -10,7 +10,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: control.c,v 8.128 2006/08/15 23:24:56 ca Exp $")
SM_RCSID("@(#)$Id: control.c,v 8.129 2013/03/12 15:24:52 ca Exp $")
#include <sm/fdset.h>
@ -301,7 +301,7 @@ control_command(sock, e)
(void) sm_io_setvbuf(s, SM_TIME_DEFAULT, NULL,
SM_IO_NBF, SM_IO_BUFSIZ);
if (sm_io_fgets(s, SM_TIME_DEFAULT, inp, sizeof(inp)) == NULL)
if (sm_io_fgets(s, SM_TIME_DEFAULT, inp, sizeof(inp)) < 0)
{
(void) sm_io_close(s, SM_TIME_DEFAULT);
exit(EX_IOERR);

View File

@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/time.h>
SM_RCSID("@(#)$Id: deliver.c,v 8.1027 2012/12/19 02:49:21 ca Exp $")
SM_RCSID("@(#)$Id: deliver.c,v 8.1028 2013/01/02 18:57:42 ca Exp $")
#if HASSETUSERCONTEXT
# include <login_cap.h>
@ -6153,7 +6153,7 @@ starttls(m, mci, e)
sm_syslog(LOG_ERR, NOQID,
"STARTTLS=client, error: SSL_new failed");
if (LogLevel > 9)
tlslogerr("client");
tlslogerr(LOG_WARNING, "client");
}
return EX_SOFTWARE;
}
@ -6172,7 +6172,7 @@ starttls(m, mci, e)
"STARTTLS=client, error: SSL_set_xfd failed=%d",
result);
if (LogLevel > 9)
tlslogerr("client");
tlslogerr(LOG_WARNING, "client");
}
return EX_SOFTWARE;
}
@ -6202,7 +6202,7 @@ starttls(m, mci, e)
result, sr == NULL ? "unknown" : sr, ssl_err,
errno, i);
if (LogLevel > 9)
tlslogerr("client");
tlslogerr(LOG_WARNING, "client");
}
SSL_free(clt_ssl);

View File

@ -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.981 2012/06/14 23:54:02 ca Exp $")
SM_RCSID("@(#)$Id: main.c,v 8.983 2013/03/12 15:24:52 ca Exp $")
#if NETINET || NETINET6
@ -2103,7 +2103,7 @@ main(argc, argv, envp)
"> ");
(void) sm_io_flush(smioout, SM_TIME_DEFAULT);
if (sm_io_fgets(smioin, SM_TIME_DEFAULT, buf,
sizeof(buf)) == NULL)
sizeof(buf)) < 0)
testmodeline("/quit", &MainEnvelope);
p = strchr(buf, '\n');
if (p != NULL)
@ -2153,7 +2153,13 @@ main(argc, argv, envp)
if (tls_ok)
{
/* basic TLS initialization */
tls_ok = init_tls_library();
tls_ok = init_tls_library(FipsMode);
if (!tls_ok && FipsMode)
{
(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
"ERROR: FIPSMode failed to initialize\n");
exit(EX_USAGE);
}
}
if (!tls_ok && (OpMode == MD_QUEUERUN || OpMode == MD_DELIVER))

View File

@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: map.c,v 8.709 2012/04/20 18:47:09 ca Exp $")
SM_RCSID("@(#)$Id: map.c,v 8.711 2013/03/12 15:24:52 ca Exp $")
#if LDAPMAP
# include <sm/ldap.h>
@ -2883,6 +2883,9 @@ nis_getcanonname(name, hbsize, statp)
# undef T_UNSPEC /* symbol conflict in nis.h -> ... -> sys/tiuser.h */
# include <rpcsvc/nis.h>
# include <rpcsvc/nislib.h>
# ifndef NIS_TABLE_OBJ
# define NIS_TABLE_OBJ TABLE_OBJ
# endif /* NIS_TABLE_OBJ */
# define EN_col(col) zo_data.objdata_u.en_data.en_cols.en_cols_val[(col)].ec_value.ec_value_val
# define COL_NAME(res,i) ((res->objects.objects_val)->TA_data.ta_cols.ta_cols_val)[i].tc_name
@ -2970,7 +2973,7 @@ nisplus_map_open(map, mode)
}
if (NIS_RES_NUMOBJ(res) != 1 ||
(NIS_RES_OBJECT(res)->zo_data.zo_type != TABLE_OBJ))
(NIS_RES_OBJECT(res)->zo_data.zo_type != NIS_TABLE_OBJ))
{
if (tTd(38, 10))
sm_dprintf("nisplus_map_open: %s is not a table\n", qbuf);
@ -5834,7 +5837,7 @@ text_map_lookup(map, name, av, statp)
key_idx = map->map_keycolno;
delim = map->map_coldelim;
while (sm_io_fgets(f, SM_TIME_DEFAULT,
linebuf, sizeof(linebuf)) != NULL)
linebuf, sizeof(linebuf)) >= 0)
{
char *p;
@ -5908,7 +5911,7 @@ text_getcanonname(name, hbsize, statp)
found = false;
while (!found &&
sm_io_fgets(f, SM_TIME_DEFAULT,
linebuf, sizeof(linebuf)) != NULL)
linebuf, sizeof(linebuf)) >= 0)
{
char *p = strpbrk(linebuf, "#\n");

View File

@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: mci.c,v 8.223 2010/03/10 04:35:28 ca Exp $")
SM_RCSID("@(#)$Id: mci.c,v 8.224 2013/03/12 15:24:53 ca Exp $")
#if NETINET || NETINET6
# include <arpa/inet.h>
@ -972,7 +972,7 @@ mci_read_persistent(fp, mci)
sm_io_rewind(fp, SM_TIME_DEFAULT);
ver = -1;
LineNumber = 0;
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
LineNumber++;
p = strchr(buf, '\n');

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1999-2009 Sendmail, Inc. and its suppliers.
* Copyright (c) 1999-2009, 2012, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
@ -10,7 +10,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: milter.c,v 8.279 2012/11/16 20:25:03 ca Exp $")
SM_RCSID("@(#)$Id: milter.c,v 8.280 2013/01/16 18:48:36 ca Exp $")
#if MILTER
# include <sm/sendmail.h>
@ -2184,7 +2184,7 @@ milter_send_command(m, cmd, data, sz, e, state, where)
** cmd -- command to send.
** data -- optional command data.
** sz -- length of buf.
** macros -- macros to send for filter smfi_getsymval().
** stage -- index of macros to send for filter smfi_getsymval().
** e -- current envelope (for macro access).
** state -- return state word.
** where -- description of calling function (logging).
@ -2328,7 +2328,6 @@ milter_getsymlist(m, buf, rlen, offset)
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)

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2003, 2006 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2003, 2006, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1994, 1996-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1994
@ -14,7 +14,7 @@
#include <sendmail.h>
#include <string.h>
SM_RCSID("@(#)$Id: mime.c,v 8.147 2007/09/26 23:29:11 ca Exp $")
SM_RCSID("@(#)$Id: mime.c,v 8.148 2013/03/12 15:24:53 ca Exp $")
/*
** MIME support.
@ -107,6 +107,7 @@ mime8to7(mci, header, e, boundaries, flags, level)
{
register char *p;
int linelen;
int blen;
int bt;
off_t offset;
size_t sectionsize, sectionhighbits;
@ -322,13 +323,13 @@ mime8to7(mci, header, e, boundaries, flags, level)
goto writeerr;
mci->mci_flags &= ~MCIF_INHEADER;
bt = MBT_FINAL;
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
bt = mimeboundary(buf, boundaries);
if (bt != MBT_NOTSEP)
break;
if (!putxline(buf, strlen(buf), mci,
if (!putxline(buf, blen, mci,
PXLF_MAPFROM|PXLF_STRIP8BIT))
goto writeerr;
if (tTd(43, 99))
@ -366,13 +367,13 @@ mime8to7(mci, header, e, boundaries, flags, level)
mci->mci_flags &= ~MCIF_INMIME;
/* skip the late "comment" epilogue */
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
bt = mimeboundary(buf, boundaries);
if (bt != MBT_NOTSEP)
break;
if (!putxline(buf, strlen(buf), mci,
if (!putxline(buf, blen, mci,
PXLF_MAPFROM|PXLF_STRIP8BIT))
goto writeerr;
if (tTd(43, 99))
@ -443,16 +444,16 @@ mime8to7(mci, header, e, boundaries, flags, level)
DATAFL_LETTER, e->e_id);
/* do a scan of this body type to count character types */
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
if (mimeboundary(buf, boundaries) != MBT_NOTSEP)
break;
for (p = buf; *p != '\0'; p++)
for (i = 0; i < blen; i++)
{
/* count bytes with the high bit set */
sectionsize++;
if (bitset(0200, *p))
if (bitset(0200, buf[i]))
sectionhighbits++;
}
@ -522,8 +523,8 @@ mime8to7(mci, header, e, boundaries, flags, level)
if (!putline("", mci))
goto writeerr;
mci->mci_flags &= ~MCIF_INHEADER;
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
if (!bitset(MCIF_INLONGLINE, mci->mci_flags))
{
@ -531,7 +532,7 @@ mime8to7(mci, header, e, boundaries, flags, level)
if (bt != MBT_NOTSEP)
break;
}
if (!putxline(buf, strlen(buf), mci,
if (!putxline(buf, blen, mci,
PXLF_MAPFROM|PXLF_NOADDEOL))
goto writeerr;
}
@ -1033,7 +1034,7 @@ mime7to8(mci, header, e)
HDR *header;
register ENVELOPE *e;
{
int pxflags;
int pxflags, blen;
register char *p;
char *cte;
char **pvp;
@ -1066,10 +1067,10 @@ mime7to8(mci, header, e)
if (!putline("", mci))
goto writeerr;
mci->mci_flags &= ~MCIF_INHEADER;
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
if (!putline(buf, mci))
if (!putxline(buf, blen, mci, PXLF_MAPFROM))
goto writeerr;
}
return true;
@ -1177,7 +1178,7 @@ mime7to8(mci, header, e)
pxflags |= PXLF_NOADDEOL;
fbufp = fbuf;
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf)) != NULL)
sizeof(buf)) >= 0)
{
off = mime_fromqp((unsigned char *) buf, &fbufp,
&fbuf[MAXLINE] - fbufp);

View File

@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: parseaddr.c,v 8.405 2012/02/27 22:49:08 ca Exp $")
SM_RCSID("@(#)$Id: parseaddr.c,v 8.406 2013/04/17 16:53:01 ca Exp $")
#include <sm/sendmail.h>
#include "map.h"
@ -2350,6 +2350,14 @@ sameaddr(a, b)
if (a->q_mailer != b->q_mailer)
return false;
/*
** Addresses resolving to error mailer
** should not be considered identical
*/
if (a->q_mailer == &errormailer)
return false;
/* if the user isn't the same, we can drop out */
if (strcmp(a->q_user, b->q_user) != 0)
return false;

View File

@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/sem.h>
SM_RCSID("@(#)$Id: queue.c,v 8.997 2012/06/14 23:54:03 ca Exp $")
SM_RCSID("@(#)$Id: queue.c,v 8.998 2013/03/12 15:24:53 ca Exp $")
#include <dirent.h>
@ -2746,7 +2746,7 @@ gatherq(qgrp, qdir, doall, full, more, pnentries)
i |= NEED_QUARANTINE;
while (cf != NULL && i != 0 &&
sm_io_fgets(cf, SM_TIME_DEFAULT, lbuf,
sizeof(lbuf)) != NULL)
sizeof(lbuf)) >= 0)
{
int c;
time_t age;
@ -4981,7 +4981,7 @@ print_single_queue(qgrp, qdir)
quarmsg[0] = '\0';
statmsg[0] = bodytype[0] = '\0';
qfver = 0;
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register int i;
register char *p;

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2006, 2008-2010 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2006, 2008-2010, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/sendmail.h>
SM_RCSID("@(#)$Id: readcf.c,v 8.684 2011/03/15 17:29:29 guenther Exp $")
SM_RCSID("@(#)$Id: readcf.c,v 8.690 2013/03/15 17:54:12 ca Exp $")
#if NETINET || NETINET6
# include <arpa/inet.h>
@ -1141,7 +1141,7 @@ fileclass(class, filename, fmt, ismap, safe, optional)
return;
}
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
#if SCANF
char wordbuf[MAXLINE + 1];
@ -2284,6 +2284,14 @@ static struct optioninfo
# define O_INETQOS 0xe7 /* reserved for FFR_QOS */
{ "InetQoS", O_INETQOS, OI_NONE },
#endif
#if STARTTLS && _FFR_FIPSMODE
# define O_FIPSMODE 0xe8
{ "FIPSMode", O_FIPSMODE, OI_NONE },
#endif /* STARTTLS && _FFR_FIPSMODE */
#if _FFR_REJECT_NUL_BYTE
# define O_REJECTNUL 0xe9
{ "RejectNUL", O_REJECTNUL, OI_SAFE },
#endif /* _FFR_REJECT_NUL_BYTE */
{ NULL, '\0', OI_NONE }
};
@ -3862,6 +3870,11 @@ setoption(opt, val, safe, sticky, e)
break;
#endif /* STARTTLS */
#if STARTTLS && _FFR_FIPSMODE
case O_FIPSMODE:
FipsMode = atobool(val);
break;
#endif /* STARTTLS && _FFR_FIPSMODE */
case O_CLIENTPORT:
setclientoptions(val);
@ -4016,6 +4029,12 @@ setoption(opt, val, safe, sticky, e)
break;
#endif /* _FFR_BADRCPT_SHUTDOWN */
#if _FFR_REJECT_NUL_BYTE
case O_REJECTNUL:
RejectNUL = atobool(val);
break;
#endif /* _FFR_REJECT_NUL_BYTE */
default:
if (tTd(37, 1))
{

View File

@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: recipient.c,v 8.349 2007/07/10 17:01:22 ca Exp $")
SM_RCSID("@(#)$Id: recipient.c,v 8.350 2013/03/12 15:24:54 ca Exp $")
static void includetimeout __P((int));
static ADDRESS *self_reference __P((ADDRESS *));
@ -1824,7 +1824,7 @@ include(fname, forwarding, ctladdr, sendq, aliaslevel, e)
LineNumber = 0;
ctladdr->q_flags &= ~QSELFREF;
nincludes = 0;
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL &&
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0 &&
!maxreached)
{
fixcrlf(buf, true);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2003, 2006 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2003, 2006, 2012, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: savemail.c,v 8.315 2012/02/27 17:43:03 gshapiro Exp $")
SM_RCSID("@(#)$Id: savemail.c,v 8.318 2013/03/12 15:24:54 ca Exp $")
static bool errbody __P((MCI *, ENVELOPE *, char *));
static bool pruneroute __P((char *));
@ -204,7 +204,7 @@ savemail(e, sendbody)
(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
"Transcript follows:\r\n");
while (sm_io_fgets(e->e_xfp, SM_TIME_DEFAULT,
buf, sizeof(buf)) != NULL &&
buf, sizeof(buf)) >= 0 &&
!sm_io_error(smioout))
(void) sm_io_fputs(smioout,
SM_TIME_DEFAULT,
@ -866,7 +866,7 @@ errbody(mci, e, separator)
if (xfile != NULL)
{
while (sm_io_fgets(xfile, SM_TIME_DEFAULT, buf,
sizeof(buf)) != NULL)
sizeof(buf)) >= 0)
{
int lbs;
bool putok;
@ -1042,18 +1042,20 @@ errbody(mci, e, separator)
}
else
{
int blen;
printheader = true;
(void) bfrewind(e->e_parent->e_xfp);
if (e->e_xfp != NULL)
(void) sm_io_flush(e->e_xfp, SM_TIME_DEFAULT);
while (sm_io_fgets(e->e_parent->e_xfp, SM_TIME_DEFAULT, buf,
sizeof(buf)) != NULL)
while ((blen = sm_io_fgets(e->e_parent->e_xfp, SM_TIME_DEFAULT,
buf, sizeof(buf))) >= 0)
{
if (printheader && !putline(" ----- Transcript of session follows -----\n",
mci))
goto writeerr;
printheader = false;
if (!putline(buf, mci))
if (!putxline(buf, blen, mci, PXLF_MAPFROM))
goto writeerr;
}
}
@ -1174,11 +1176,24 @@ errbody(mci, e, separator)
/* Original-Recipient: -- passed from on high */
if (q->q_orcpt != NULL)
{
(void) sm_snprintf(buf, sizeof(buf),
"Original-Recipient: %.800s",
q->q_orcpt);
if (!putline(buf, mci))
goto writeerr;
p = strchr(q->q_orcpt, ';');
/*
** p == NULL shouldn't happen due to
** check in srvrsmtp.c
** we could log an error in this case.
*/
if (p != NULL)
{
*p = '\0';
(void) sm_snprintf(buf, sizeof(buf),
"Original-Recipient: %.100s;%.700s",
q->q_orcpt, xuntextify(p + 1));
*p = ';';
if (!putline(buf, mci))
goto writeerr;
}
}
/* Figure out actual recipient */
@ -1682,6 +1697,34 @@ xtextok(s)
}
return true;
}
/*
** ISATOM -- check if a string is an "atom"
**
** Parameters:
** s -- the string to check.
**
** Returns:
** true -- iff s is an atom
*/
bool
isatom(s)
const char *s;
{
int c;
if (s == NULL || *s == '\0')
return false;
while ((c = *s++) != '\0')
{
if (strchr("()<>@,;:\\.[]\"", c) != NULL)
return false;
if (c < '!' || c > '~')
return false;
}
return true;
}
/*
** PRUNEROUTE -- prune an RFC-822 source route
**

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2013 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.1096 2012/11/16 20:25:03 ca Exp $";
SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1101 2013/03/15 17:54:12 ca Exp $";
# endif /* ! lint */
#endif /* _DEFINE */
@ -124,7 +124,11 @@ SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1096 2012/11/16 20:2
#if STARTTLS
# include <openssl/ssl.h>
# if !TLS_NO_RSA
# define RSA_KEYLENGTH 512
# if _FFR_FIPSMODE
# define RSA_KEYLENGTH 1024
# else /* _FFR_FIPSMODE */
# define RSA_KEYLENGTH 512
# endif /* _FFR_FIPSMODE */
# endif /* !TLS_NO_RSA */
#endif /* STARTTLS */
@ -1936,14 +1940,14 @@ struct termescape
#define TLS_AUTH_FAIL (-1)
/* functions */
extern bool init_tls_library __P((void));
extern bool init_tls_library __P((bool _fipsmode));
extern bool inittls __P((SSL_CTX **, unsigned long, long, bool, char *, char *, char *, char *, char *));
extern bool initclttls __P((bool));
extern void setclttls __P((bool));
extern bool initsrvtls __P((bool));
extern int tls_get_info __P((SSL *, bool, char *, MACROS_T *, bool));
extern int endtls __P((SSL *, char *));
extern void tlslogerr __P((const char *));
extern void tlslogerr __P((int, const char *));
EXTERN char *CACertPath; /* path to CA certificates (dir. with hashes) */
@ -2291,6 +2295,7 @@ EXTERN bool DontLockReadFiles; /* don't read lock support files */
EXTERN bool DontPruneRoutes; /* don't prune source routes */
EXTERN bool ForkQueueRuns; /* fork for each job when running the queue */
EXTERN bool FromFlag; /* if set, "From" person is explicit */
EXTERN bool FipsMode;
EXTERN bool GrabTo; /* if set, get recipients from msg */
EXTERN bool EightBitAddrOK; /* we'll let 8-bit addresses through */
EXTERN bool HasEightBits; /* has at least one eight bit input byte */
@ -2305,6 +2310,9 @@ EXTERN bool NoAlias; /* suppress aliasing */
EXTERN bool NoConnect; /* don't connect to non-local mailers */
EXTERN bool OnlyOneError; /* .... or only want to give one SMTP reply */
EXTERN bool QuickAbort; /* .... but only if we want a quick abort */
#if _FFR_REJECT_NUL_BYTE
EXTERN bool RejectNUL; /* reject NUL input byte? */
#endif /* _FFR_REJECT_NUL_BYTE */
#if REQUIRES_DIR_FSYNC
EXTERN bool RequiresDirfsync; /* requires fsync() for directory */
#endif /* REQUIRES_DIR_FSYNC */
@ -2650,6 +2658,7 @@ extern void initmacros __P((ENVELOPE *));
extern void initsetproctitle __P((int, char **, char **));
extern void init_vendor_macros __P((ENVELOPE *));
extern SIGFUNC_DECL intsig __P((int));
extern bool isatom __P((const char *));
extern bool isloopback __P((SOCKADDR sa));
extern void load_if_names __P((void));
extern bool lockfile __P((int, char *, char *, int));

View File

@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
SM_RCSID("@(#)$Id: sfsasl.c,v 8.118 2008/07/22 15:12:48 ca Exp $")
SM_RCSID("@(#)$Id: sfsasl.c,v 8.120 2013/03/15 17:49:12 guenther Exp $")
#include <stdlib.h>
#include <sendmail.h>
#include <sm/time.h>
@ -628,13 +628,14 @@ tls_retry(ssl, rfd, wfd, tlsstart, timeout, err, where)
"STARTTLS=%s, error: fd %d/%d too large",
where, rfd, wfd);
if (LogLevel > 8)
tlslogerr(where);
tlslogerr(LOG_WARNING, where);
}
errno = EINVAL;
}
else if (err == SSL_ERROR_WANT_READ)
{
fd_set ssl_maskr, ssl_maskx;
int save_errno = errno;
FD_ZERO(&ssl_maskr);
FD_SET(rfd, &ssl_maskr);
@ -647,10 +648,12 @@ tls_retry(ssl, rfd, wfd, tlsstart, timeout, err, where)
} while (ret < 0 && errno == EINTR);
if (ret < 0 && errno > 0)
ret = -errno;
errno = save_errno;
}
else if (err == SSL_ERROR_WANT_WRITE)
{
fd_set ssl_maskw, ssl_maskx;
int save_errno = errno;
FD_ZERO(&ssl_maskw);
FD_SET(wfd, &ssl_maskw);
@ -663,6 +666,7 @@ tls_retry(ssl, rfd, wfd, tlsstart, timeout, err, where)
} while (ret < 0 && errno == EINTR);
if (ret < 0 && errno > 0)
ret = -errno;
errno = save_errno;
}
return ret;
}
@ -770,8 +774,17 @@ tls_read(fp, buf, size)
break;
#endif /* DEAL_WITH_ERROR_SSL */
err = "generic SSL error";
if (LogLevel > 9)
tlslogerr("read");
{
int pri;
if (errno == EAGAIN && try > 0)
pri = LOG_DEBUG;
else
pri = LOG_WARNING;
tlslogerr(pri, "read");
}
#if DEAL_WITH_ERROR_SSL
/* avoid repeated calls? */
@ -792,11 +805,19 @@ tls_read(fp, buf, size)
"STARTTLS: read error=timeout");
}
else if (LogLevel > 8)
sm_syslog(LOG_WARNING, NOQID,
{
int pri;
if (save_errno == EAGAIN && try > 0)
pri = LOG_DEBUG;
else
pri = LOG_WARNING;
sm_syslog(pri, NOQID,
"STARTTLS: read error=%s (%d), errno=%d, get_error=%s, retry=%d, ssl_err=%d",
err, r, errno,
ERR_error_string(ERR_get_error(), NULL), try,
ssl_err);
}
else if (LogLevel > 7)
sm_syslog(LOG_WARNING, NOQID,
"STARTTLS: read error=%s (%d), retry=%d, ssl_err=%d",
@ -878,7 +899,7 @@ tls_write(fp, buf, size)
ERR_GET_REASON(ERR_peek_error()));
*/
if (LogLevel > 9)
tlslogerr("write");
tlslogerr(LOG_WARNING, "write");
#if DEAL_WITH_ERROR_SSL
/* avoid repeated calls? */

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2010, 2012 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2010, 2012, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@ -17,7 +17,7 @@
# include <libmilter/mfdef.h>
#endif /* MILTER */
SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.1011 2012/12/19 02:49:21 ca Exp $")
SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.1015 2013/03/12 15:24:54 ca Exp $")
#include <sm/time.h>
#include <sm/fdset.h>
@ -1864,7 +1864,7 @@ smtp(nullserver, d_flags, e)
{
message("454 4.3.3 TLS not available: error generating SSL handle");
if (LogLevel > 8)
tlslogerr("server");
tlslogerr(LOG_WARNING, "server");
goto tls_done;
}
@ -1927,7 +1927,7 @@ smtp(nullserver, d_flags, e)
ssl_err, errno, i,
CurSmtpClient);
if (LogLevel > 9)
tlslogerr("server");
tlslogerr(LOG_WARNING, "server");
}
tls_ok_srv = false;
SSL_free(srv_ssl);
@ -4518,6 +4518,8 @@ rcpt_esmtp_args(a, kp, vp, e)
}
else if (sm_strcasecmp(kp, "orcpt") == 0)
{
char *p;
if (!bitset(SRV_OFFER_DSN, e->e_features))
{
usrerr("504 5.7.0 Sorry, ORCPT not supported, we do not allow DSN");
@ -4528,16 +4530,25 @@ rcpt_esmtp_args(a, kp, vp, e)
usrerr("501 5.5.2 ORCPT requires a value");
/* NOTREACHED */
}
if (strchr(vp, ';') == NULL || !xtextok(vp))
{
usrerr("501 5.5.4 Syntax error in ORCPT parameter value");
/* NOTREACHED */
}
if (a->q_orcpt != NULL)
{
usrerr("501 5.5.0 Duplicate ORCPT parameter");
/* NOTREACHED */
}
p = strchr(vp, ';');
if (p == NULL)
{
usrerr("501 5.5.4 Syntax error in ORCPT parameter value");
/* NOTREACHED */
}
*p = '\0';
if (!isatom(vp) || !xtextok(p + 1))
{
*p = ';';
usrerr("501 5.5.4 Syntax error in ORCPT parameter value");
/* NOTREACHED */
}
*p = ';';
a->q_orcpt = sm_rpool_strdup_x(e->e_rpool, vp);
}
else
@ -4923,7 +4934,7 @@ help(topic, e)
len = strlen(topic);
while (sm_io_fgets(hf, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(hf, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
if (buf[0] == '#')
{

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000-2006, 2008, 2009, 2011 Sendmail, Inc. and its suppliers.
* Copyright (c) 2000-2006, 2008, 2009, 2011, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
@ -10,7 +10,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: tls.c,v 8.118 2011/03/07 23:20:47 ca Exp $")
SM_RCSID("@(#)$Id: tls.c,v 8.121 2013/01/02 23:54:17 ca Exp $")
#if STARTTLS
# include <openssl/err.h>
@ -267,15 +267,18 @@ tls_rand_init(randfile, logl)
** INIT_TLS_LIBRARY -- Calls functions which setup TLS library for global use.
**
** Parameters:
** none.
** fipsmode -- use FIPS?
**
** Returns:
** succeeded?
*/
bool
init_tls_library()
init_tls_library(fipsmode)
bool fipsmode;
{
bool bv;
/* basic TLS initialization, ignore result for now */
SSL_library_init();
SSL_load_error_strings();
@ -284,7 +287,30 @@ init_tls_library()
SSLeay_add_ssl_algorithms();
# endif /* 0 */
return tls_rand_init(RandFile, 7);
bv = tls_rand_init(RandFile, 7);
# if _FFR_FIPSMODE
if (bv && fipsmode)
{
if (!FIPS_mode_set(1))
{
unsigned long err;
err = ERR_get_error();
if (LogLevel > 0)
sm_syslog(LOG_ERR, NOQID,
"STARTTLS=init, FIPSMode=%s",
ERR_error_string(err, NULL));
return false;
}
else
{
if (LogLevel > 9)
sm_syslog(LOG_INFO, NOQID,
"STARTTLS=init, FIPSMode=ok");
}
}
#endif /* _FFR_FIPSMODE */
return bv;
}
/*
** TLS_SET_VERIFY -- request client certificate?
@ -709,7 +735,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_new(SSLv23_%s_method()) failed",
who, who);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
return false;
}
@ -808,7 +834,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: RSA_generate_key failed",
who);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
return false;
}
@ -829,7 +855,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_use_PrivateKey_file(%s) failed",
who, keyfile);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
if (bitset(TLS_I_USE_KEY, req))
return false;
@ -846,7 +872,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_use_certificate_file(%s) failed",
who, certfile);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
if (bitset(TLS_I_USE_CERT, req))
return false;
@ -863,7 +889,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_check_private_key failed(%s): %d",
who, keyfile, r);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
if (bitset(TLS_I_USE_KEY, req))
return false;
@ -882,7 +908,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_use_PrivateKey_file(%s) failed",
who, kf2);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
@ -896,7 +922,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_use_certificate_file(%s) failed",
who, cf2);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
@ -911,7 +937,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_check_private_key 2 failed: %d",
who, r);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
# endif /* _FFR_TLS_1 */
@ -962,7 +988,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
who, dhparam,
ERR_error_string(err, NULL));
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
else
@ -973,7 +999,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: BIO_new_file(%s) failed",
who, dhparam);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
}
@ -1089,7 +1115,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: load verify locs %s, %s failed: %d",
who, cacertpath, cacertfile, r);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
if (bitset(TLS_I_VRFY_LOC, req))
return false;
@ -1113,7 +1139,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
who, CipherList);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
/* failure if setting to this list is required? */
}
@ -1377,7 +1403,7 @@ endtls(ssl, side)
sm_syslog(LOG_WARNING, NOQID,
"STARTTLS=%s, SSL_shutdown failed: %d",
side, r);
tlslogerr(side);
tlslogerr(LOG_WARNING, side);
}
ret = EX_SOFTWARE;
}
@ -1426,7 +1452,7 @@ endtls(ssl, side)
sm_syslog(LOG_WARNING, NOQID,
"STARTTLS=%s, SSL_shutdown not done",
side);
tlslogerr(side);
tlslogerr(LOG_WARNING, side);
}
ret = EX_SOFTWARE;
}
@ -1659,6 +1685,7 @@ tls_verify_cb(ctx, unused)
** TLSLOGERR -- log the errors from the TLS error stack
**
** Parameters:
** level -- syslog level
** who -- server/client (for logging).
**
** Returns:
@ -1666,7 +1693,8 @@ tls_verify_cb(ctx, unused)
*/
void
tlslogerr(who)
tlslogerr(level, who)
int level;
const char *who;
{
unsigned long l;
@ -1680,7 +1708,7 @@ tlslogerr(who)
while ((l = ERR_get_error_line_data(CP &file, &line, CP &data, &flags))
!= 0)
{
sm_syslog(LOG_WARNING, NOQID,
sm_syslog(level, NOQID,
"STARTTLS=%s: %lu:%s:%s:%d:%s", who, es,
ERR_error_string(l, buf),
file, line,

View File

@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: usersmtp.c,v 8.485 2010/07/23 21:09:38 ca Exp $")
SM_RCSID("@(#)$Id: usersmtp.c,v 8.486 2013/03/12 15:24:54 ca Exp $")
#include <sysexits.h>
@ -801,7 +801,7 @@ readauth(filename, safe, sai, rpool)
lc = 0;
while (lc <= SASL_MECHLIST &&
sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
if (buf[0] != '#')
{

View File

@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: util.c,v 8.425 2012/03/03 00:10:43 ca Exp $")
SM_RCSID("@(#)$Id: util.c,v 8.426 2013/03/12 15:24:54 ca Exp $")
#include <sm/sendmail.h>
#include <sysexits.h>
@ -1285,8 +1285,7 @@ sfgets(buf, siz, fp, timeout, during)
char *during;
{
register char *p;
int save_errno;
int io_timeout;
int save_errno, io_timeout, l;
SM_REQUIRE(siz > 0);
SM_REQUIRE(buf != NULL);
@ -1299,7 +1298,7 @@ sfgets(buf, siz, fp, timeout, during)
}
/* try to read */
p = NULL;
l = -1;
errno = 0;
/* convert the timeout to sm_io notation */
@ -1307,8 +1306,8 @@ sfgets(buf, siz, fp, timeout, during)
while (!sm_io_eof(fp) && !sm_io_error(fp))
{
errno = 0;
p = sm_io_fgets(fp, io_timeout, buf, siz);
if (p == NULL && errno == EAGAIN)
l = sm_io_fgets(fp, io_timeout, buf, siz);
if (l < 0 && errno == EAGAIN)
{
/* The sm_io_fgets() call timedout */
if (LogLevel > 1)
@ -1328,7 +1327,7 @@ sfgets(buf, siz, fp, timeout, during)
errno = ETIMEDOUT;
return NULL;
}
if (p != NULL || errno != EINTR)
if (l >= 0 || errno != EINTR)
break;
(void) sm_io_clearerr(fp);
}
@ -1336,7 +1335,7 @@ sfgets(buf, siz, fp, timeout, during)
/* clean up the books and exit */
LineNumber++;
if (p == NULL)
if (l < 0)
{
buf[0] = '\0';
if (TrafficLogFile != NULL)

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@ -13,6 +13,6 @@
#include <sm/gen.h>
SM_RCSID("@(#)$Id: version.c,v 8.235 2012/12/19 05:11:44 ca Exp $")
SM_RCSID("@(#)$Id: version.c,v 8.243 2013/04/18 15:07:17 ca Exp $")
char Version[] = "8.14.6";
char Version[] = "8.14.7";

View File

@ -1,4 +1,4 @@
dnl $Id: Makefile.m4,v 1.4 2002/06/21 22:01:54 ca Exp $
dnl $Id: Makefile.m4,v 1.6 2013/04/01 21:04:29 ca Exp $
include(confBUILDTOOLSDIR`/M4/switch.m4')
bldPRODUCT_START(`executable', `test')

View File

@ -20,7 +20,7 @@ SM_IDSTR(copyright,
The Regents of the University of California. All rights reserved.\n\
Copyright (c) 1983 Eric P. Allman. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: vacation.c,v 8.146 2009/08/07 21:28:39 ca Exp $")
SM_IDSTR(id, "@(#)$Id: vacation.c,v 8.147 2013/03/12 15:24:56 ca Exp $")
#include <ctype.h>
@ -509,7 +509,7 @@ readheaders(alwaysrespond)
cont = false;
tome = alwaysrespond;
while (sm_io_fgets(smioin, SM_TIME_DEFAULT, buf, sizeof(buf)) &&
while (sm_io_fgets(smioin, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0 &&
*buf != '\n')
{
switch(*buf)
@ -954,7 +954,7 @@ xclude(f)
if (f == NULL)
return;
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof buf))
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof buf) >= 0)
{
if ((p = strchr(buf, '\n')) != NULL)
*p = '\0';
@ -1049,7 +1049,7 @@ sendmessage(myname, msgfn, sender)
(void) sm_io_fprintf(sfp, SM_TIME_DEFAULT, "To: %s\n", From);
(void) sm_io_fprintf(sfp, SM_TIME_DEFAULT,
"Auto-Submitted: auto-replied\n");
while (sm_io_fgets(mfp, SM_TIME_DEFAULT, buf, sizeof buf))
while (sm_io_fgets(mfp, SM_TIME_DEFAULT, buf, sizeof buf) >= 0)
(void) sm_io_fputs(sfp, SM_TIME_DEFAULT, buf);
(void) sm_io_close(mfp, SM_TIME_DEFAULT);
(void) sm_io_close(sfp, SM_TIME_DEFAULT);