diff --git a/postfix/HISTORY b/postfix/HISTORY index a2e8986f1..90eb4946c 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -24200,7 +24200,22 @@ Apologies for any names omitted. 20190312 Bugfix (introduced: Postfix 2.2): reject_multi_recipient_bounce - produce false rejects with smtpd_end_of_data_restrictons, - and for the same reasons, with the Postfix 3.4 BDAT command. - The latter was reported by Andreas Schulze. File: - smtpd/smtpd_check.c. + 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. + +20190319 + + With message_size_limit=0 (which is NOT DOCUMENTED), BDAT + chunks were always too large. Reported by Thorben Thuermer. + fix by Viktor Dukhovni. File: src/smtpd/smtpd.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. diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html index 77249e445..88b8b87bf 100644 --- a/postfix/html/postconf.5.html +++ b/postfix/html/postconf.5.html @@ -6241,7 +6241,7 @@ substitutions in regular expression maps.

(default: empty)

The name of an optional logfile that is written by the Postfix -postlogd(8) service. A non-empty value selects logging to syslogd(8). +postlogd(8) service. An empty value selects logging to syslogd(8). Specify "/dev/stdout" to select logging to standard output. Stdout logging requires that Postfix is started with "postfix start-fg".

diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index 4a92d179c..a97621d4d 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -3750,7 +3750,7 @@ substitutions in regular expression maps. This feature is available in Postfix 2.3 and later. .SH maillog_file (default: empty) The name of an optional logfile that is written by the Postfix -\fBpostlogd\fR(8) service. A non\-empty value selects logging to \fBsyslogd\fR(8). +\fBpostlogd\fR(8) service. An empty value selects logging to \fBsyslogd\fR(8). Specify "/dev/stdout" to select logging to standard output. Stdout logging requires that Postfix is started with "postfix start\-fg". .PP diff --git a/postfix/proto/postconf.proto b/postfix/proto/postconf.proto index ae1b6f4be..77a1baff8 100644 --- a/postfix/proto/postconf.proto +++ b/postfix/proto/postconf.proto @@ -17550,7 +17550,7 @@ parameter. See there for details.

%PARAM maillog_file

The name of an optional logfile that is written by the Postfix -postlogd(8) service. A non-empty value selects logging to syslogd(8). +postlogd(8) service. An empty value selects logging to syslogd(8). Specify "/dev/stdout" to select logging to standard output. Stdout logging requires that Postfix is started with "postfix start-fg".

diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 04a1ea3d6..61be3f1ed 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -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 "20190312" +#define MAIL_RELEASE_DATE "20190330" #define MAIL_VERSION_NUMBER "3.5" #ifdef SNAPSHOT diff --git a/postfix/src/smtp/smtp_connect.c b/postfix/src/smtp/smtp_connect.c index dc142ff70..aad48e409 100644 --- a/postfix/src/smtp/smtp_connect.c +++ b/postfix/src/smtp/smtp_connect.c @@ -492,6 +492,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_SCACHE_REQUEST_NEXTHOP(state, path); /* * Here we ensure that the iter->addr member refers to a copy of the @@ -567,6 +569,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_SCACHE_REQUEST_NEXTHOP(state)) + CLEAR_SCACHE_REQUEST_NEXTHOP(state); } /* smtp_scrub_address_list - delete all cached addresses from list */ diff --git a/postfix/src/smtpd/smtpd.c b/postfix/src/smtpd/smtpd.c index d115fca3b..f3e107072 100644 --- a/postfix/src/smtpd/smtpd.c +++ b/postfix/src/smtpd/smtpd.c @@ -3878,7 +3878,8 @@ static int bdat_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv) } } /* Block too large chunks. */ - if (state->act_size > var_message_limit - chunk_size) { + if (var_message_limit > 0 + && state->act_size > var_message_limit - chunk_size) { state->error_mask |= MAIL_ERROR_POLICY; msg_warn("%s: BDAT request from %s exceeds message size limit", state->queue_id ? state->queue_id : "NOQUEUE",