]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.2.9 v3.2.9
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:35:05 +0000 (23:35 -0400)
postfix/HISTORY
postfix/src/global/mail_version.h
postfix/src/smtp/smtp_connect.c
postfix/src/smtpd/smtpd_check.c

index 981519b8decc9cf47a76546b94830eef0d230a51..4be1d313de6851e73962fdaf2fc0ab2e0388fd22 100644 (file)
@@ -23145,3 +23145,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 f3c2d514779355ae6c567beabce17b9920a8b8e5..cae85277f891bbea5b7595ec3d58a03f13c2af8f 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.2.8"
+#define MAIL_RELEASE_DATE      "20190330"
+#define MAIL_VERSION_NUMBER    "3.2.9"
 
 #ifdef SNAPSHOT
 #define MAIL_VERSION_DATE      "-" MAIL_RELEASE_DATE
index 7eb0462cfa279a617039dee7d2d096d62360acdf..50337dc28fd229c8a8c016414b8983cefa5769be 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 e161522386b91ebdfe574a0c893385efc86d21f1..62b7310851f64ddf0949d484713f0516af8992d0 100644 (file)
@@ -4576,7 +4576,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",