Move QUICKACK disable as early as possible in server handling
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 23 Jan 2021 21:28:28 +0000 (21:28 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 23 Jan 2021 21:28:28 +0000 (21:28 +0000)
src/src/daemon.c
src/src/smtp_in.c

index 21807f64f3397a09c6b37fd5c343264ba4cde98d..1006961d35b09220e47686d9f43ce31d8cfe66fe 100644 (file)
@@ -2431,6 +2431,11 @@ for (;;)
 
       if (accept_socket >= 0)
         {
+#ifdef TCP_QUICKACK /* Avoid pure-ACKs while in tls protocol pingpong phase */
+       /* Unfortunately we cannot be certain to do this before a TLS-on-connect
+       Client Hello arrives and is acked. We do it as early as possible. */
+       (void) setsockopt(accept_socket, IPPROTO_TCP, TCP_QUICKACK, US &off, sizeof(off));
+#endif
         if (inetd_wait_timeout)
           last_connection_time = time(NULL);
         handle_smtp_call(listen_sockets, listen_socket_count, accept_socket,
index 4cc619014baec07f38cb39a25109ce975b1cf0c6..0467b22574ad127932a4b689778a54d1bc8f0102 100644 (file)
@@ -2902,13 +2902,8 @@ if (check_proxy_protocol_host())
   setup_proxy_protocol_host();
 #endif
 
-#ifdef TCP_QUICKACK /* Avoid pure-ACKs while in tls protocol pingpong phase */
-(void) setsockopt(fileno(smtp_in), IPPROTO_TCP, TCP_QUICKACK,
-         US &off, sizeof(off));
-#endif
-
-  /* Start up TLS if tls_on_connect is set. This is for supporting the legacy
-  smtps port for use with older style SSL MTAs. */
+/* Start up TLS if tls_on_connect is set. This is for supporting the legacy
+smtps port for use with older style SSL MTAs. */
 
 #ifndef DISABLE_TLS
 if (tls_in.on_connect)