From 5bf8a51681e171328e72f5d5b5ef8fd8a67d5f05 Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sun, 16 Feb 2020 21:03:46 +0000 Subject: [PATCH] Fix continued-connection SIZE parameter on MAIL commmand. Bug 2525 --- doc/doc-txt/ChangeLog | 5 +++++ src/src/transports/smtp.c | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 22ea6ad7b..116df90d0 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -126,6 +126,11 @@ JH/25 Fix use of concurrent TLS connections under GnuTLS. When a callout was used rather than per-connection info for tracking the state of data queued for transmission. This could result in a connection hang. +JH/26 Fix use of the SIZE parameter on MAIL commands, on continued connections. + Previously, when delivering serveral messages down a single connection + only the first would provide a SIZE. This was due to the size information + not being properly tracked. + Exim version 4.93 ----------------- diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index b748b7657..5c5f37d2b 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -2377,6 +2377,7 @@ else } sx->inblock.cctx = sx->outblock.cctx = &sx->cctx; smtp_command = big_buffer; + sx->peer_offered = smtp_peer_options; sx->helo_data = NULL; /* ensure we re-expand ob->helo_data */ /* For a continued connection with TLS being proxied for us, or a @@ -2387,7 +2388,6 @@ else && cutthrough.is_tls) ) { - sx->peer_offered = smtp_peer_options; sx->pipelining_used = pipelining_active = !!(smtp_peer_options & OPTION_PIPE); HDEBUG(D_transport) debug_printf("continued connection, %s TLS\n", continue_proxy_cipher ? "proxied" : "verify conn with"); @@ -3512,7 +3512,6 @@ always has a sequence number greater than one. */ if (continue_hostname && continue_sequence == 1) { - sx->peer_offered = smtp_peer_options; /* sx->pending_MAIL = FALSE; */ sx->ok = TRUE; /* sx->next_addr = NULL; */ -- 2.25.1