]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.1.12 v3.1.12
authorWietse Venema <wietse@porcupine.org>
Sat, 30 Mar 2019 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Mon, 1 Apr 2019 03:36:34 +0000 (23:36 -0400)
postfix/HISTORY
postfix/src/global/mail_version.h
postfix/src/smtp/smtp_connect.c
postfix/src/smtpd/smtpd_check.c

index 5d34daa52019f6314cb3442dfb0c4ce0031b62d7..e2e9cc20cffb3ea5667f1a9b2b3f1c97436fa1f6 100644 (file)
@@ -22473,3 +22473,20 @@ Apologies for any names omitted.
         a lookup table that does not use fixed-string keys (regexp,
         pcre, tcp, etc.). Historically, Postfix would not case-fold
         the search string with such tables. File: util/dict_utf8.c.
+
+20190312
+
+       Bugfix (introduced: Postfix 2.2): reject_multi_recipient_bounce
+       has been producing false rejects starting with the Postfix
+       2.2 smtpd_end_of_data_restrictons, and for the same reasons,
+       did the same with the Postfix 3.4 BDAT command. The latter
+       was reported by Andreas Schulze. File: smtpd/smtpd_check.c.
+
+20190328
+
+       Bugfix (introduced: Postfix 3.0): LMTP connections over
+       UNIX-domain sockets were cached but not reused, due to a
+       cache lookup key mismatch. Therefore, idle cached connections
+       could exhaust LMTP server resources, resulting in two-second
+       pauses between email deliveries. This problem was investigated
+       by Juliana Rodrigueiro. File: smtp/smtp_connect.c.
index 45e6ab04af4dc1d41bf52392efb5e034ff2d1f27..df010242793edc586491c60bed4fa79e1280dc2b 100644 (file)
@@ -20,8 +20,8 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20190226"
-#define MAIL_VERSION_NUMBER    "3.1.11"
+#define MAIL_RELEASE_DATE      "20190330"
+#define MAIL_VERSION_NUMBER    "3.1.12"
 
 #ifdef SNAPSHOT
 #define MAIL_VERSION_DATE      "-" MAIL_RELEASE_DATE
index 1f5b1c1a3a89fecb63ea17a38b2ad48d20780c40..ac9c6c43d7c1635d2a458d7d37d9f3c058ce8d60 100644 (file)
@@ -487,6 +487,8 @@ static void smtp_connect_local(SMTP_STATE *state, const char *path)
      * the "unix:" prefix.
      */
     smtp_cache_policy(state, path);
+    if (state->misc_flags & SMTP_MISC_FLAG_CONN_CACHE_MASK)
+       SET_NEXTHOP_STATE(state, path);
 
     /*
      * Here we ensure that the iter->addr member refers to a copy of the
@@ -562,6 +564,12 @@ static void smtp_connect_local(SMTP_STATE *state, const char *path)
            msg_panic("%s: unix-domain destination not final!", myname);
        smtp_cleanup_session(state);
     }
+
+    /*
+     * Cleanup.
+     */
+    if (HAVE_NEXTHOP_STATE(state))
+       FREE_NEXTHOP_STATE(state);
 }
 
 /* smtp_scrub_address_list - delete all cached addresses from list */
index 00060230132aae17ee88a60a51e27ac5e2d27a65..38fd435f1ba92b57336b97714c4e4244fcc79685 100644 (file)
@@ -4585,7 +4585,7 @@ static int generic_checks(SMTPD_STATE *state, ARGV *restrictions,
                status = check_recipient_rcpt_maps(state, state->recipient);
        } else if (strcasecmp(name, REJECT_MUL_RCPT_BOUNCE) == 0) {
            if (state->sender && *state->sender == 0 && state->rcpt_count
-               > (strcmp(state->where, SMTPD_CMD_DATA) ? 0 : 1))
+               > (strcmp(state->where, SMTPD_CMD_RCPT) != 0))
                status = smtpd_check_reject(state, MAIL_ERROR_POLICY,
                                            var_mul_rcpt_code, "5.5.3",
                                "<%s>: %s rejected: Multi-recipient bounce",