git://git.exim.org
/
users
/
heiko
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4a92bfe
)
Avoid all tail-end pipelining on retries
author
Jeremy Harris
<jgh146exb@wizmail.org>
Tue, 23 Mar 2021 19:43:43 +0000
(19:43 +0000)
committer
Jeremy Harris
<jgh146exb@wizmail.org>
Sat, 27 Mar 2021 17:02:42 +0000
(17:02 +0000)
src/src/transports/smtp.c
patch
|
blob
|
history
diff --git
a/src/src/transports/smtp.c
b/src/src/transports/smtp.c
index 13f617cbb916b8db87df30ff9756bf2dc89a2027..ca589b0be0cc279c33f54c3861e01b4fa6257d92 100644
(file)
--- 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
- 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. */
- 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)
&& (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 =
)
{
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. */
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)
#if 0 && !defined(DISABLE_TLS)
- && Ustrcmp(tls_out.ver, "TLS1.3") != 0
+
&& Ustrcmp(tls_out.ver, "TLS1.3") != 0
#endif
#endif
+ || !f.deliver_firsttime
)
{ /* Send QUIT now and not later */
(void)smtp_write_command(sx, SCMD_FLUSH, "QUIT\r\n");
)
{ /* Send QUIT now and not later */
(void)smtp_write_command(sx, SCMD_FLUSH, "QUIT\r\n");