TFO: disable for FreeBSD
authorHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Tue, 10 Dec 2019 22:14:35 +0000 (23:14 +0100)
committerHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Wed, 11 Dec 2019 16:27:25 +0000 (17:27 +0100)
(cherry-picked from 52503083b9eded01c25e1c73f4510963c3cee799)

src/src/ip.c

index 19be51a..70e3e20 100644 (file)
@@ -245,7 +245,7 @@ callout_address = string_sprintf("[%s]:%d", address, port);
 sigalrm_seen = FALSE;
 if (timeout > 0) ALARM(timeout);
 
-#ifdef TCP_FASTOPEN
+#if defined(TCP_FASTOPEN) && (defined(MSG_FASTOPEN) || defined(EXIM_TFO_CONNECTX))
 /* TCP Fast Open, if the system has a cookie from a previous call to
 this peer, can send data in the SYN packet.  The peer can send data
 before it gets our ACK of its SYN,ACK - the latter is useful for
@@ -255,8 +255,8 @@ possibly use the data-on-syn, so support that too. */
 if (fastopen_blob && f.tcp_fastopen_ok)
   {
 # ifdef MSG_FASTOPEN
-  /* This is a Linux implementation.  It might be useable on FreeBSD; I have
-  not checked. */
+  /* This is a Linux implementation.  FreeBSD does not seem to have MSG_FASTOPEN so
+  how to get TFO is unknown. */
 
   if ((rc = sendto(sock, fastopen_blob->data, fastopen_blob->len,
                    MSG_FASTOPEN | MSG_DONTWAIT, s_ptr, s_len)) >= 0)