]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.3-20050629
authorWietse Venema <wietse@porcupine.org>
Wed, 29 Jun 2005 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:31:18 +0000 (06:31 +0000)
postfix/HISTORY
postfix/RELEASE_NOTES
postfix/html/postconf.5.html
postfix/man/man5/postconf.5
postfix/mantools/postconf2man
postfix/proto/postconf.proto
postfix/src/global/mail_version.h
postfix/src/smtp/smtp_connect.c
postfix/src/util/dict_db.c
postfix/src/util/events.c

index a7d0460eba00b7aa4f509816a69dd5ecdddb512a..3ee2150d707c401804039aeeb97a080d59839e65 100644 (file)
@@ -10952,6 +10952,13 @@ Apologies for any names omitted.
        Code cleanup: generalized the smtp-sink code that simulates
        server errors. File: smtpstone/smtp-sink.c.
 
+20050629
+
+       Code cleanup: the smtp_mx_session_limit setting (per delivery
+       request session count limit) now ignores sessions that fail
+       to complete the TCP, SMTP, EHLO or TLS handshake (was: TCP
+       and SMTP).  File: smtp/smtp_proto.c.
+
 Open problems:
 
        Look for systems with XPG basename() declared in <libgen.h>,
index a1ac3b2e7ac54beb1f9809319bdcb7adc8e5b4ea..ffca91291d407ac96b97ceff869ebd4beccb7310 100644 (file)
@@ -17,6 +17,13 @@ Incompatibility with Postfix 2.1 and earlier
 If you upgrade from Postfix 2.1 or earlier, read RELEASE_NOTES-2.2
 before proceeding.
 
+Incompatibility with snapshot 20050627
+======================================
+
+The Postfix SMTP client no longer applies the smtp_mx_session_limit
+to non-permanent errors during the TCP, SMTP, HELO or TLS handshake.
+Previous versions did that only with TCP and SMTP handshake errors.
+
 Incompatibility with snapshot 20050622
 ======================================
 
@@ -26,9 +33,7 @@ disabled by default. The new limit prevents Postfix from spending
 lots of time trying to connect to lots of bogus MX servers.
 
 The Postfix SMTP error handling of [45]XX server greetings was
-cleaned up. The server reply is now properly reported. As a side
-effect, the failed session now counts towards the limit on the total
-number of sessions per domain name (default: smtp_mx_session_limit=2).
+cleaned up. The server reply is now properly reported. 
 
 Incompatibility with snapshot 20050615
 ======================================
index 9e280791a76744edebfd94a7c378388fd74acccb..0194bfc38974eb353ffd905921e376fa642dedc9 100644 (file)
@@ -6221,8 +6221,9 @@ This feature is available in Postfix 2.1 and later.
 
 <p> The maximal number of SMTP sessions per delivery request before
 giving up or delivering to a fall-back relay host, or zero (no
-limit). This restriction ignores IP addresses that fail to complete
-the SMTP initial handshake.  </p>
+limit). This restriction ignores sessions that fail to complete the
+SMTP initial handshake (Postfix 2.2 and earlier) or that fail to
+complete the EHLO and TLS handshake (Postfix 2.3 and later).  </p>
 
 <p> This feature is available in Postfix 2.1 and later.  </p>
 
index 9f144a0cfc866f96aa2923503703168a69adb341..be80a2de3d76c030f75b0cdf639231c2381fe2f9 100644 (file)
@@ -514,7 +514,7 @@ result is ignored).  Continue long lines by starting the next line
 with whitespace.
 .PP
 Note: IP version 6 address information must be specified inside
-<tt>[]</tt> in the authorized_verp_clients value, and in files
+[] in the authorized_verp_clients value, and in files
 specified with "/file/name".  IP version 6 addresses contain the
 ":" character, and would otherwise be confused with a "type:table"
 pattern.
@@ -1197,7 +1197,7 @@ is unavailable.
 In main.cf specify "relay_transport = relay",
 .IP \(bu
 In master.cf specify "-o fallback_relay =" (i.e., empty) at
-the end of the <tt>relay</tt> entry.
+the end of the relay entry.
 .IP \(bu
 In transport maps, specify "relay:\fInexthop...\fR"
 as the right-hand side for backup or primary MX domain entries.
@@ -1406,11 +1406,11 @@ The network interface addresses that this mail system receives
 mail on. Specify "all" to receive mail on all network
 interfaces (default), and "loopback-only" to receive mail
 on loopback network interfaces only (Postfix 2.2 and later).  The
-parameter also controls delivery of mail to <tt>user@[ip.address]</tt>.
+parameter also controls delivery of mail to user@[ip.address].
 .PP
 Note 1: you need to stop and start Postfix when this parameter changes.
 .PP
-Note 2: address information may be enclosed inside <tt>[]</tt>,
+Note 2: address information may be enclosed inside [],
 but this form is not recommended here.
 .PP
 When inet_interfaces specifies just one IPv4 and/or IPv6 address
@@ -2370,7 +2370,7 @@ first match.  Specify "!pattern" to exclude an address or network
 block from the list.
 .PP
 Note: IP version 6 address information must be specified inside
-<tt>[]</tt> in the mynetworks value, and in files specified with
+[] in the mynetworks value, and in files specified with
 "/file/name".  IP version 6 addresses contain the ":" character,
 and would otherwise be confused with a "type:table" pattern.
 .PP
@@ -3192,7 +3192,7 @@ automatically used as the smtp_bind_address.  This supports virtual
 IP hosting, but can be a problem on multi-homed firewalls. See the
 inet_interfaces documentation for more detail.
 .PP
-Note 2: address information may be enclosed inside <tt>[]</tt>,
+Note 2: address information may be enclosed inside [],
 but this form is not recommended here.
 .SH smtp_bind_address6 (default: empty)
 An optional numerical network address that the SMTP client should
@@ -3219,7 +3219,7 @@ automatically used as the smtp_bind_address6.  This supports virtual
 IP hosting, but can be a problem on multi-homed firewalls. See the
 inet_interfaces documentation for more detail.
 .PP
-Note 2: address information may be enclosed inside <tt>[]</tt>,
+Note 2: address information may be enclosed inside [],
 but this form is not recommended here.
 .SH smtp_connect_timeout (default: 30s)
 The SMTP client time limit for completing a TCP connection, or
@@ -3443,8 +3443,9 @@ This feature is available in Postfix 2.1 and later.
 .SH smtp_mx_session_limit (default: 2)
 The maximal number of SMTP sessions per delivery request before
 giving up or delivering to a fall-back relay host, or zero (no
-limit). This restriction ignores IP addresses that fail to complete
-the SMTP initial handshake.
+limit). This restriction ignores sessions that fail to complete the
+SMTP initial handshake (Postfix 2.2 and earlier) or that fail to
+complete the EHLO and TLS handshake (Postfix 2.3 and later).
 .PP
 This feature is available in Postfix 2.1 and later.
 .SH smtp_never_send_ehlo (default: no)
@@ -3870,7 +3871,7 @@ result is ignored).  Continue long lines by starting the next line
 with whitespace.
 .PP
 Note: IP version 6 address information must be specified inside
-<tt>[]</tt> in the smtpd_authorized_verp_clients value, and in
+[] in the smtpd_authorized_verp_clients value, and in
 files specified with "/file/name".  IP version 6 addresses contain
 the ":" character, and would otherwise be confused with a "type:table"
 pattern.
@@ -3896,7 +3897,7 @@ result is ignored).  Continue long lines by starting the next line
 with whitespace.
 .PP
 Note: IP version 6 address information must be specified inside
-<tt>[]</tt> in the smtpd_authorized_xclient_hosts value, and in
+[] in the smtpd_authorized_xclient_hosts value, and in
 files specified with "/file/name".  IP version 6 addresses contain
 the ":" character, and would otherwise be confused with a "type:table"
 pattern.
@@ -3921,7 +3922,7 @@ result is ignored).  Continue long lines by starting the next line
 with whitespace.
 .PP
 Note: IP version 6 address information must be specified inside
-<tt>[]</tt> in the smtpd_authorized_xforward_hosts value, and in
+[] in the smtpd_authorized_xforward_hosts value, and in
 files specified with "/file/name".  IP version 6 addresses contain
 the ":" character, and would otherwise be confused with a "type:table"
 pattern.
@@ -3986,7 +3987,7 @@ list of network blocks, hostnames or .domain names (the initial
 dot causes the domain to match any name below it).
 .PP
 Note: IP version 6 address information must be specified inside
-<tt>[]</tt> in the smtpd_client_event_limit_exceptions value, and
+[] in the smtpd_client_event_limit_exceptions value, and
 in files specified with "/file/name".  IP version 6 addresses
 contain the ":" character, and would otherwise be confused with a
 "type:table" pattern.
@@ -4773,7 +4774,7 @@ matches a lookup string (the lookup result is ignored).  Continue
 long lines by starting the next line with whitespace.
 .PP
 Note: IP version 6 address information must be specified inside
-<tt>[]</tt> in the smtpd_sasl_exceptions_networks value, and in
+[] in the smtpd_sasl_exceptions_networks value, and in
 files specified with "/file/name".  IP version 6 addresses contain
 the ":" character, and would otherwise be confused with a "type:table"
 pattern.
index acb182f35319e42663c39c3198175d4928df7aab..4b83cb5199af136392667d9ab3d0acf1473690a9 100755 (executable)
@@ -63,6 +63,8 @@ while(<>) {
     $block =~ s/<li>\s*/\n.IP \\(bu\n/g;
     $block =~ s/<dt>\s*/\n.IP "/g;
     $block =~ s/\s*<\/dt>/"/g;
+    $block =~ s/<tt>\s*//g;
+    $block =~ s/\s*<\/tt>//g;
     $block =~ s/<blockquote>/\n.na\n.nf\n.in +4\n/g;
     $block =~ s/<\/blockquote>/\n.in -4\n.fi\n.ad\n/g;
     $block =~ s/\n<br>/\n.br\n/g;
index 16bc0f1c2776161d5f8fd47659a27ff4cb324c45..5068d3fdd98fe4674c9ce2e39472dc2ca46074b0 100644 (file)
@@ -3840,8 +3840,9 @@ This feature is available in Postfix 2.1 and later.
 
 <p> The maximal number of SMTP sessions per delivery request before
 giving up or delivering to a fall-back relay host, or zero (no
-limit). This restriction ignores IP addresses that fail to complete
-the SMTP initial handshake.  </p>
+limit). This restriction ignores sessions that fail to complete the
+SMTP initial handshake (Postfix 2.2 and earlier) or that fail to
+complete the EHLO and TLS handshake (Postfix 2.3 and later).  </p>
 
 <p> This feature is available in Postfix 2.1 and later.  </p>
 
index b9c6453aba3aba9c87a9d624f8f0d2cbd0e17c0f..bd8e503cd4f09a74aa0c606df29ed4191a29de68 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20050627"
+#define MAIL_RELEASE_DATE      "20050629"
 #define MAIL_VERSION_NUMBER    "2.3"
 
 #define VAR_MAIL_VERSION       "mail_version"
index da041c0bed53bd84c2e890be145ec9fcca17d31c..1af797bf546a4e5798d3f4745e24fb017355df21 100644 (file)
@@ -653,18 +653,22 @@ int     smtp_connect(SMTP_STATE *state)
                || (session = smtp_reuse_addr(state, addr, port)) == 0)
                session = smtp_connect_addr(dest, addr, port, why, sess_flags);
            if ((state->session = session) != 0) {
-               if (++sess_count == var_smtp_mxsess_limit)
-                   next = 0;
-               state->final_server = (cpp[1] == 0 && next == 0);
                if (addr->pref == domain_best_pref)
                    session->features |= SMTP_FEATURE_BEST_MX;
+               /* Don't count handshake errors towards the session limit. */
+               state->final_server = (cpp[1] == 0 && next == 0);
                if ((session->features & SMTP_FEATURE_FROM_CACHE) == 0
                    && smtp_helo(state, misc_flags) != 0) {
                    if (vstream_ferror(session->stream) == 0
                        && vstream_feof(session->stream) == 0)
                        smtp_quit(state);
-               } else
+               } else {
+                   /* Do count delivery errors towards the session limit. */
+                   if (++sess_count == var_smtp_mxsess_limit)
+                       next = 0;
+                   state->final_server = (cpp[1] == 0 && next == 0);
                    smtp_xfer(state);
+               }
                smtp_cleanup_session(state);
            } else {
                msg_info("%s (port %d)", STR(why->reason), ntohs(port));
index 1a0f3165c4a3d1606a7e5c7b5f80ee602071c35c..586cb424710e48565290ea8d22a331ef33979aeb 100644 (file)
@@ -547,6 +547,15 @@ static DICT *dict_db_open(const char *class, const char *path, int open_flags,
              "compiled against %d.%d.%d, run-time linked against %d.%d.%d",
                  DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
                  major_version, minor_version, patch_version);
+    if (msg_verbose) {
+       msg_info("Compiled against Berkeley DB: %d.%d.%d\n",
+                DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
+       msg_info("Run-time linked against Berkeley DB: %d.%d.%d\n",
+                major_version, minor_version, patch_version);
+    }
+#else
+    if (msg_verbose)
+       msg_info("Compiled against Berkeley DB version 1");
 #endif
 
     db_path = concatenate(path, ".db", (char *) 0);
index c502245b71128bcce0993cc8fd32ed14cc7e9468..379e31c7f45f6ae7e931ecc9754bf857debacb6d 100644 (file)
@@ -17,7 +17,7 @@
 /*     int     delay;
 /*
 /*     int     event_cancel_timer(callback, context)
-/*     void    (*callback)(char *context);
+/*     void    (*callback)(int event, char *context);
 /*     char    *context;
 /*
 /*     void    event_enable_read(fd, callback, context)
@@ -63,7 +63,7 @@
 /*     The event argument is equal to EVENT_TIME.
 /*     Only one timer request can be active per (callback, context) pair.
 /*     Calling event_request_timer() with an existing (callback, context)
-/*     pair does not schedule a new event, but updates the moment of
+/*     pair does not schedule a new event, but updates the time of event
 /*     delivery. The result is the absolute time at which the timer is
 /*     scheduled to go off.
 /*