From: Wietse Venema
Date: Tue, 7 Mar 2006 05:00:00 +0000 (-0500)
Subject: postfix-2.3-20060307
X-Git-Tag: v2.3-RC1~15
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ea1256ce8bd6e745f3e5986b1b75c47b99595fd;p=thirdparty%2Fpostfix.git
postfix-2.3-20060307
---
diff --git a/postfix/HISTORY b/postfix/HISTORY
index 27159b2bd..068783367 100644
--- a/postfix/HISTORY
+++ b/postfix/HISTORY
@@ -11979,8 +11979,9 @@ Apologies for any names omitted.
20060204
- Bugfix: disable content_inspection for "sendmail -bv"
- probes. File: *qmgr/qmgr_message.c.
+ Bugfix: disable the content_filter feature for user-requested
+ "sendmail -bv" probes, just like it is disabled for probes
+ generated by Postfix itself. File: *qmgr/qmgr_message.c.
20060207
@@ -12000,9 +12001,36 @@ Apologies for any names omitted.
of waiting for another 100 seconds. This allows the processes
to refresh more frequently on low-traffic systems.
+ Cleanup: smtpd_delay_open_until_valid_rcpt (default: yes)
+ controls whether Postfix delays the start of a mail transaction
+ until after the first valid recipient, or if it starts a
+ transaction immediately after MAIL FROM. File: smtpd/smtpd.c.
+
+20060217
+
+ Bugfix: don't terminate with a non-standard exit status
+ when the pipe-to-command feature has a problem before it
+ executes the command. File: global/pipe_command.c.
+
+20060223
+
+ Bugfix: detect integer overflow when multiplying time values
+ with non-trivial time units. File: global/conv_time.c.
+
+20060307
+
+ Bugfix: reset the msg_cleanup() fatal error handler in child
+ processes. See also change 20060217. Files: postlock/postlock.c,
+ master/multi_server.c, global/mail_run.c, util/vstream_popen.c.
+
Wish list:
- Fix XCLIENT/XFORWARD: send xtext and accept old non-xtext.
+ Log DSN original recipient when rejecting mail.
+
+ Keep whitespace between label and ":"?
+
+ Make XCLIENT/XFORWARD future proof: send xtext and accept
+ old non-xtext.
Make the map case folding/locking options configurable, if
not at run-time then at least at compile time so we get
@@ -12016,7 +12044,8 @@ Wish list:
do virtual aliasing earlier?
Investigate what it would take to eliminate oqmgr, and to
- make the old behavior configurable in a unified queue manager.
+ make the old behavior configurable in a unified queue
+ manager.
This would shave another 2.7 KLOC from the source footprint.
Document the case folding strategy for match_list like features.
diff --git a/postfix/README_FILES/IPV6_README b/postfix/README_FILES/IPV6_README
index ee49675b7..d60b0e5f0 100644
--- a/postfix/README_FILES/IPV6_README
+++ b/postfix/README_FILES/IPV6_README
@@ -107,7 +107,7 @@ configuration work with Postfix.
smtp_bind_address parameter does for IPv4:
/etc/postfix/main.cf:
- smtp_bind_address6 = 2001:240:5c7:0:250:56ff:fe89:1
+ smtp_bind_address6 = 2001:240:587:0:250:56ff:fe89:1
* If you left the value of the mynetworks parameter at its default (i.e. no
mynetworks setting in main.cf) Postfix will figure out by itself what its
@@ -115,14 +115,14 @@ configuration work with Postfix.
% postconf mynetworks
mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [fe80::]/10 [2001:
- 240:5c7::]/64
+ 240:587::]/64
If you did specify the mynetworks parameter value in main.cf, you need
update the mynetworks value to include the IPv6 networks the system is in.
Be sure to specify IPv6 address information inside "[]", like this:
/etc/postfix/main.cf:
- mynetworks = ...IPv4 networks... [::1]/128 [2001:240:5c7::]/64 ...
+ mynetworks = ...IPv4 networks... [::1]/128 [2001:240:587::]/64 ...
NNOOTTEE:: wwhheenn ccoonnffiigguurriinngg PPoossttffiixx mmaattcchh lliissttss ssuucchh aass mmyynneettwwoorrkkss oorr
ddeebbuugg__ppeeeerr__lliisstt,, yyoouu mmuusstt ssppeecciiffyy IIPPvv66 aaddddrreessss iinnffoorrmmaattiioonn iinnssiiddee ""[[]]"" iinn tthhee
@@ -226,7 +226,7 @@ Getting Postfix IPv6 working on other platforms involves the following steps:
168.100.189.2/255.255.255.224
127.0.0.1/255.0.0.0
fe80:1::2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
- 2001:240:5c7:0:2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
+ 2001:240:587:0:2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
fe80:5::1/ffff:ffff:ffff:ffff::
::1/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
diff --git a/postfix/README_FILES/SCHEDULER_README b/postfix/README_FILES/SCHEDULER_README
index ec924e906..f94581196 100644
--- a/postfix/README_FILES/SCHEDULER_README
+++ b/postfix/README_FILES/SCHEDULER_README
@@ -43,7 +43,7 @@ how next message is chosen when delivery agent becomes available. You already
know that oqmgr(8) uses round-robin by destination while qmgr(8) uses simple
FIFO, except for some preemptive magic. The postconf(5) manual documents all
the knobs the user can use to control this preemptive magic - there is nothing
-else to the preemption than the quite simple conditions described below.
+else to the preemption than the quite simple conditions described in there.
As for programmer-level documentation, this will have to be extracted from all
those emails we have exchanged with Wietse [rats! I hoped that Patrik would do
diff --git a/postfix/README_FILES/SMTPD_PROXY_README b/postfix/README_FILES/SMTPD_PROXY_README
index e04902637..f0c63f915 100644
--- a/postfix/README_FILES/SMTPD_PROXY_README
+++ b/postfix/README_FILES/SMTPD_PROXY_README
@@ -31,14 +31,14 @@ This document describes the following topics:
* Configuring the Postfix SMTP pass-through proxy feature
* Configuration parameters
* How Postfix talks to the before-queue content filter
- * Transparency
PPrriinncciipplleess ooff ooppeerraattiioonn
-The before-filter Postfix SMTP server receives mail from the Internet and does
-the usual relay access control, SASL authentication, RBL lookups, rejecting
-non-existent sender or recipient addresses, etc. The before-queue filter
-receives unfiltered mail content from Postfix and does one of the following:
+The before-filter Postfix SMTP server accepts connections from the Internet and
+does the usual relay access control, SASL authentication, TLS negotiation, RBL
+lookups, rejecting non-existent sender or recipient addresses, etc. The before-
+queue filter receives unfiltered mail content from Postfix and does one of the
+following:
1. Re-inject the mail back into Postfix via SMTP, perhaps after changing its
content and/or destination.
@@ -193,49 +193,18 @@ Postfix speaks ESMTP but uses no command pipelining. Postfix generates its own
EHLO, XFORWARD (for logging the remote client IP address instead of localhost
[127.0.0.1]), DATA and QUIT commands, and forwards unmodified copies of all the
MAIL FROM and RCPT TO commands that the before-filter Postfix SMTP server
-didn't reject itself. The SMTP proxy server should accept the same MAIL FROM
-and RCPT TO command syntax as the Postfix SMTP server. Postfix sends no other
-SMTP commands.
-
-The content filter is expected to pass on unmodified SMTP commands from a
-before-filter Postfix SMTP server to an after-filter Postfix SMTP server that
-usually listens on a non-standard port. When the filter rejects content, it
-should send a negative SMTP response back to the before-filter Postfix SMTP
-server, and it should abort the connection with the after-filter Postfix SMTP
-server without completing the SMTP conversation with the after-filter Postfix
-SMTP server.
-
-More detail on the postfix-to-proxy interaction is in the section titled
-"Transparency".
-
-TTrraannssppaarreennccyy
-
-The before-filter Postfix SMTP server forwards the MAIL FROM, RCPT TO and DATA
-commands that it has approved, but it does not forward other commands such as
-TLS or SASL commands. It can therefore not be transparent.
-
-The real-time content filter, on the other hand, has to be transparent. In
-order to support non-transparent real-time content filters, Postfix would have
-to reconcile the before-filter Postfix ESMTP feature set with the feature set
-that Postfix receives from the real-time content filter.
-
- * When a future Postfix version supports DSN, but the content filter does not
- announce DSN support in the EHLO reply, then the before-filter SMTP server
- would have to either 1) suppress the DSN feature in its EHLO announcement,
- or 2) duplicate all the work that needs to be done when delivering DSN-
- aware mail to a non-DSN destination.
-
- * When the content filter does not announce 8BITMIME support in the EHLO
- reply, then the before-filter SMTP server would have to either 1) suppress
- the 8BITMIME feature in its EHLO announcement, or 2) convert the content to
- quoted-printable before giving it to the content filter.
-
- * Performance: when Postfix has to suppress elements from the before-filter
- EHLO reply because they are incompatible with the real-time content filter,
- then Postfix has to connect to the content filter as soon as the client
- sends a valid EHLO command. This wastes a lot of resources when all the
- MAIL FROM or RCPT TO commands are rejected.
-
-Therefore, the Postfix SMTP server cannot be transparent with respect to the
-before-queue content filter.
+didn't reject itself. Postfix sends no other SMTP commands.
+
+The content filter should accept the same MAIL FROM and RCPT TO command syntax
+as the before-filter Postfix SMTP server, and should forward the commands
+without modification to the after-filter SMTP server. If the content filter or
+after-filter SMTP server does not support all the ESMTP features that the
+before-filter Postfix SMTP server supports, then the missing features must be
+turned off in the before-filter Postfix SMTP server with the
+smtpd_discard_ehlo_keywords parameter.
+
+When the filter rejects content, it should send a negative SMTP response back
+to the before-filter Postfix SMTP server, and it should abort the connection
+with the after-filter Postfix SMTP server without completing the SMTP
+conversation with the after-filter Postfix SMTP server.
diff --git a/postfix/README_FILES/TLS_README b/postfix/README_FILES/TLS_README
index c1d290724..ba9fb6d10 100644
--- a/postfix/README_FILES/TLS_README
+++ b/postfix/README_FILES/TLS_README
@@ -68,9 +68,10 @@ To build Postfix with TLS support, first we need to generate the make(1) files
with the necessary definitions. This is done by invoking the command "make
makefiles" in the Postfix top-level directory and with arguments as shown next.
-NNOOTTEE:: DDoo nnoott uussee GGnnuu TTLLSS.. IItt wwiillll ssppoonnttaanneeoouussllyy tteerrmmiinnaattee aa pprroocceessss wwiitthh eexxiitt
-ssttaattuuss ccooddee 22,, iinnsstteeaadd ooff pprrooppeerrllyy rreeppoorrttiinngg pprroobblleemmss ttoo PPoossttffiixx,, ssoo tthhaatt iitt
-ccaann lloogg tthheemm ttoo tthhee mmaaiilllloogg ffiillee..
+NNOOTTEE:: DDoo nnoott uussee GGnnuu TTLLSS.. IItt wwiillll ssppoonnttaanneeoouussllyy tteerrmmiinnaattee aa PPoossttffiixx ddaaeemmoonn
+pprroocceessss wwiitthh eexxiitt ssttaattuuss ccooddee 22,, iinnsstteeaadd ooff aalllloowwiinngg PPoossttffiixx ttoo 11)) rreeppoorrtt tthhee
+eerrrroorr ttoo tthhee mmaaiilllloogg ffiillee,, aanndd ttoo 22)) pprroovviiddee ppllaaiinntteexxtt sseerrvviiccee wwhheerree tthhiiss iiss
+aapppprroopprriiaattee..
* If the OpenSSL include files (such as ssl.h) are in directory /usr/include/
openssl, and the OpenSSL libraries (such as libssl.so and libcrypto.so) are
@@ -815,11 +816,11 @@ Example:
# relayhost exact nexthop match
[msa.example.net]:587 MUST
- # example.org (as nexthop) has MX hosts with broken TLS.
+ # TLS should not be used with the example.org MX hosts.
example.org NONE
- # Except for (as host) mx1.example.org which works.
- mx1.example.org MAY
+ # TLS should not be used with the host smtp.example.com.
+ smtp.example.com NONE
DDiissccoovveerriinngg sseerrvveerrss tthhaatt ssuuppppoorrtt TTLLSS
diff --git a/postfix/html/IPV6_README.html b/postfix/html/IPV6_README.html
index cce966534..0193491e9 100644
--- a/postfix/html/IPV6_README.html
+++ b/postfix/html/IPV6_README.html
@@ -83,7 +83,7 @@ IPv6 support to other environments.
- Postfix IPv6 support introduces two new main.cf configuration
+
Postfix IPv6 support introduces two new main.cf configuration
parameters, and introduces an important change in address syntax
notation in match lists such as mynetworks or
debug_peer_list.
@@ -98,8 +98,8 @@ related configuration work with Postfix.
-
Instead of hard-coding 127.0.0.1 and ::1 loopback addresses
-in master.cf, specify "inet_interfaces = loopback-only" in main.cf.
-This way you can use the same master.cf file regardless of whether
+in master.cf, specify "inet_interfaces = loopback-only" in main.cf.
+This way you can use the same master.cf file regardless of whether
or not Postfix will run on an IPv6-enabled system.
-
The first new parameter is called inet_protocols. This
@@ -109,7 +109,7 @@ will use when it makes network connections.
-/etc/postfix/main.cf:
+/etc/postfix/main.cf:
# You must stop/start Postfix after changing this parameter.
inet_protocols = ipv4 (DEFAULT: enable IPv4 only)
inet_protocols = all (enable IPv4, and IPv6 if supported)
@@ -162,32 +162,32 @@ does for IPv4:
-/etc/postfix/main.cf:
- smtp_bind_address6 = 2001:240:5c7:0:250:56ff:fe89:1
+/etc/postfix/main.cf:
+ smtp_bind_address6 = 2001:240:587:0:250:56ff:fe89:1
-
If you left the value of the mynetworks parameter at its
-default (i.e. no mynetworks setting in main.cf) Postfix will figure
+default (i.e. no mynetworks setting in main.cf) Postfix will figure
out by itself what its network addresses are. This is what a typical
setting looks like:
% postconf mynetworks
-mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [fe80::]/10 [2001:240:5c7::]/64
+mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [fe80::]/10 [2001:240:587::]/64
If you did specify the mynetworks parameter value in
-main.cf, you need update the mynetworks value to include
+main.cf, you need update the mynetworks value to include
the IPv6 networks the system is in. Be sure to specify IPv6 address
information inside "[]", like this:
-/etc/postfix/main.cf:
- mynetworks = ...IPv4 networks... [::1]/128 [2001:240:5c7::]/64 ...
+/etc/postfix/main.cf:
+ mynetworks = ...IPv4 networks... [::1]/128 [2001:240:587::]/64 ...
@@ -195,7 +195,7 @@ information inside "[]", like this:
NOTE: when configuring Postfix match lists such as
mynetworks or debug_peer_list, you must specify
-IPv6 address information inside "[]" in the main.cf parameter
+IPv6 address information inside "[]" in the main.cf parameter
value and in files specified with a "/file/name" pattern.
IPv6 addresses contain the ":" character, and would otherwise be
confused with a "type:table" pattern.
@@ -220,7 +220,7 @@ same effect as the setting "mynetwork
subnet mask
and always assumes a /128 network. This is a problem only with
"mynetworks_style = subnet" and no explicit mynetworks
-setting in main.cf.
+setting in main.cf.
@@ -232,22 +232,22 @@ by Dean Strik and others, but differs in a few minor ways.
--
main.cf: The inet_interfaces parameter does not support
+
-
main.cf: The inet_interfaces parameter does not support
the notation "ipv6:all" or "ipv4:all". Use the
inet_protocols parameter instead.
- -
main.cf: Specify "inet_protocols = all" or
+
-
main.cf: Specify "inet_protocols = all" or
"inet_protocols = ipv4, ipv6" in order to enable both IPv4
and IPv6 support.
- -
main.cf: The inet_protocols parameter also controls
+
-
main.cf: The inet_protocols parameter also controls
what DNS lookups Postfix will attempt to make when delivering or
receiving mail.
- -
main.cf: Specify "inet_interfaces = loopback-only"
+
-
main.cf: Specify "inet_interfaces = loopback-only"
to listen on loopback network interfaces only.
- -
The lmtp_bind_address and lmtp_bind_address6
+
-
The lmtp_bind_address and lmtp_bind_address6
features were omitted. The Postfix LMTP client will be absorbed
into the SMTP client, so there is no reason to keep adding features
to the LMTP client.
@@ -334,7 +334,7 @@ and network masks, for example:
168.100.189.2/255.255.255.224
127.0.0.1/255.0.0.0
fe80:1::2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
-2001:240:5c7:0:2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
+2001:240:587:0:2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
fe80:5::1/ffff:ffff:ffff:ffff::
::1/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
diff --git a/postfix/html/SCHEDULER_README.html b/postfix/html/SCHEDULER_README.html
index d2a0973f0..25f56a51a 100644
--- a/postfix/html/SCHEDULER_README.html
+++ b/postfix/html/SCHEDULER_README.html
@@ -68,7 +68,7 @@ available. You already know that oqmgr(8) uses round-
while qmgr(8) uses simple FIFO, except for some preemptive magic.
The postconf(5) manual documents all the knobs the user
can use to control this preemptive magic - there is nothing else
-to the preemption than the quite simple conditions described below.
+to the preemption than the quite simple conditions described in there.
As for programmer-level documentation, this will have to be
diff --git a/postfix/html/SMTPD_PROXY_README.html b/postfix/html/SMTPD_PROXY_README.html
index 1cca5e59d..646ddca7d 100644
--- a/postfix/html/SMTPD_PROXY_README.html
+++ b/postfix/html/SMTPD_PROXY_README.html
@@ -102,14 +102,13 @@ proxy feature
- How Postfix talks to the before-queue content
filter
-
- Transparency
-
- The before-filter Postfix SMTP server receives mail from the
+
The before-filter Postfix SMTP server accepts connections from the
Internet and does the usual relay access control, SASL authentication,
+TLS negotiation,
RBL lookups, rejecting non-existent sender or recipient addresses,
etc. The before-queue filter receives unfiltered mail content from
Postfix and does one of the following:
@@ -346,62 +345,24 @@ pipelining. Postfix generates its own EHLO, XFORWARD (for logging
the remote client IP address instead of localhost[127.0.0.1]), DATA
and QUIT commands, and forwards unmodified copies of all the MAIL
FROM and RCPT TO commands that the before-filter Postfix SMTP server
-didn't reject itself. The SMTP proxy server should accept the same
-MAIL FROM and RCPT TO command syntax as the Postfix SMTP server.
+didn't reject itself.
Postfix sends no other SMTP commands.
- The content filter is expected to pass on unmodified SMTP
-commands from a before-filter Postfix SMTP server to an after-filter
-Postfix SMTP server that usually listens on a non-standard port.
-When the filter rejects content, it should send a negative SMTP
+
The content filter should accept the same MAIL FROM and RCPT
+TO command syntax as the before-filter Postfix SMTP server, and
+should forward the commands without modification to the after-filter
+SMTP server. If the content filter or after-filter SMTP server
+does not support all the ESMTP features that the before-filter
+Postfix SMTP server supports, then the missing features must be
+turned off in the before-filter Postfix SMTP server with the
+smtpd_discard_ehlo_keywords parameter.
+
+ When the filter rejects content, it should send a negative SMTP
response back to the before-filter Postfix SMTP server, and it
should abort the connection with the after-filter Postfix SMTP
server without completing the SMTP conversation with the after-filter
Postfix SMTP server.
- More detail on the postfix-to-proxy interaction is in the
-section titled "Transparency".
-
-
-
- The before-filter Postfix SMTP server forwards the MAIL FROM,
-RCPT TO and DATA commands that it has approved, but it does not
-forward other commands such as TLS or SASL commands. It can
-therefore not be transparent.
-
- The real-time content filter, on the other hand, has to be
-transparent. In order to support non-transparent real-time content
-filters, Postfix would have to reconcile the before-filter Postfix
-ESMTP feature set with the feature set that Postfix receives from
-the real-time content filter.
-
-
-
- -
When a future Postfix version supports DSN, but the
- content filter does not announce DSN support in the EHLO reply,
- then the before-filter SMTP server would have to either 1)
- suppress the DSN feature in its EHLO announcement, or 2)
- duplicate all the work that needs to be done when delivering
- DSN-aware mail to a non-DSN destination.
-
- -
When the content filter does not announce 8BITMIME
- support in the EHLO reply, then the before-filter SMTP server
- would have to either 1) suppress the 8BITMIME feature in its
- EHLO announcement, or 2) convert the content to quoted-printable
- before giving it to the content filter.
-
- -
Performance: when Postfix has to suppress elements
- from the before-filter EHLO reply because they are incompatible
- with the real-time content filter, then Postfix has to connect
- to the content filter as soon as the client sends a valid EHLO
- command. This wastes a lot of resources when all the MAIL FROM
- or RCPT TO commands are rejected.
-
-
-
- Therefore, the Postfix SMTP server cannot be transparent with
-respect to the before-queue content filter.
-