Use single TCP segment for SMTP, TLS and TCP closes.
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 29 Dec 2018 19:27:20 +0000 (19:27 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 29 Dec 2018 20:59:13 +0000 (20:59 +0000)
src/src/smtp_in.c
src/src/transports/smtp.c

index b3cc76c64dc298de6bd5bb5b5a432f6527d5017d..439d688fd24b5656f1017e88cfbb55c6be545526 100644 (file)
@@ -3823,6 +3823,11 @@ if (acl_smtp_quit)
     log_write(0, LOG_MAIN|LOG_PANIC, "ACL for QUIT returned ERROR: %s",
       *log_msgp);
   }
+
+#ifdef TCP_CORK
+(void) setsockopt(fileno(smtp_out), IPPROTO_TCP, TCP_CORK, US &on, sizeof(on));
+#endif
+
 if (*user_msgp)
   smtp_respond(US"221", 3, TRUE, *user_msgp);
 else
index 472f7bb1909ec401769b7ac72ded6658c69ce8b4..5516edfda439b9113abe4304c6c94f69c47bca34 100644 (file)
@@ -4323,6 +4323,9 @@ This change is being made on 31-Jul-98. After over a year of trouble-free
 operation, the old commented-out code was removed on 17-Sep-99. */
 
 SEND_QUIT:
+#ifdef TCP_CORK
+(void) setsockopt(sx.cctx.sock, IPPROTO_TCP, TCP_CORK, US &on, sizeof(on));
+#endif
 if (sx.send_quit) (void)smtp_write_command(&sx, SCMD_FLUSH, "QUIT\r\n");
 
 END_OFF: