Fix continued-connection SIZE parameter on MAIL commmand. Bug 2525
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 16 Feb 2020 21:03:46 +0000 (21:03 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Mon, 17 Feb 2020 13:53:18 +0000 (13:53 +0000)
doc/doc-txt/ChangeLog
src/src/transports/smtp.c

index 22ea6ad7bbced0a570ed0465d2f10ea3ab3ea55a..116df90d06203425630a5ef19e9078beb25e2026 100644 (file)
@@ -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
 -----------------
index b748b7657b354942777fb0a0d9c6b4344dfda00c..5c5f37d2b5505bd64bdbeb4ef7684c895968793c 100644 (file)
@@ -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; */