[exim-cvs] Avoid all tail-end pipelining on retries

Top Page
Delete this message
Reply to this message
Author: Exim Git Commits Mailing List
Date:  
To: exim-cvs
Subject: [exim-cvs] Avoid all tail-end pipelining on retries
Gitweb: https://git.exim.org/exim.git/commitdiff/945aca263c27696543d823e36070783e89d1f2f2
Commit:     945aca263c27696543d823e36070783e89d1f2f2
Parent:     4a92bfe6da547eb599b76da068b8b908e1c509b7
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Tue Mar 23 19:43:43 2021 +0000
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Sat Mar 27 17:02:42 2021 +0000


    Avoid all tail-end pipelining on retries
---
 src/src/transports/smtp.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)


diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index 13f617c..ca589b0 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -3790,6 +3790,7 @@ else
- not ok to send quit
- errors in amtp transation responses
- more addrs to send for this message or this host
+ - this message was being retried
- more messages for this host
If we can, we want the message-write to not flush (the tail end of) its data out. */

@@ -3797,6 +3798,7 @@ else
      && (sx->ok && sx->completed_addr || sx->peer_offered & OPTION_CHUNKING)
      && sx->send_quit
      && !(sx->first_addr || f.continue_more)
+     && f.deliver_firsttime
      )
     {
     smtp_compare_t t_compare =
@@ -3861,10 +3863,11 @@ else
     close-notify.  Under TLS 1.3, violating RFC.
     However, TLS 1.2 does not have half-close semantics. */


-    if (  sx->cctx.tls_ctx
+    if (     sx->cctx.tls_ctx
 #if 0 && !defined(DISABLE_TLS)
-       && Ustrcmp(tls_out.ver, "TLS1.3") != 0
+          && Ustrcmp(tls_out.ver, "TLS1.3") != 0
 #endif
+       || !f.deliver_firsttime
        )
       {                /* Send QUIT now and not later */
       (void)smtp_write_command(sx, SCMD_FLUSH, "QUIT\r\n");