summaryrefslogtreecommitdiff
path: root/src/OS
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2019-12-08 23:36:01 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2019-12-08 23:36:01 +0000
commit1d717e1c110562fd6bf28478c79f180cafeba776 (patch)
treecefecf48467c646663f9af1048239b65d727571a /src/OS
parenta2ce7b0f5da40b6a7a3094f75b156eede00539c0 (diff)
parent277b99794bf90e4a64b4adee88c08bed417bc5ee (diff)
Merge branch '4.next'
Diffstat (limited to 'src/OS')
-rw-r--r--src/OS/Makefile-Base2
-rw-r--r--src/OS/Makefile-GNU (renamed from src/OS/unsupported/Makefile-GNU)0
-rw-r--r--src/OS/os.c-FreeBSD23
-rw-r--r--src/OS/os.c-GNU (renamed from src/OS/unsupported/os.c-GNU)0
-rw-r--r--src/OS/os.h-FreeBSD8
-rw-r--r--src/OS/os.h-GNU (renamed from src/OS/unsupported/os.h-GNU)0
6 files changed, 25 insertions, 8 deletions
diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base
index 1f42e0ec3..36af8308d 100644
--- a/src/OS/Makefile-Base
+++ b/src/OS/Makefile-Base
@@ -82,6 +82,7 @@ Makefile: ../OS/Makefile-Base ../OS/Makefile-Default \
os.h: $(SCRIPTS)/Configure-os.h \
$(O)/os.h-Darwin \
$(O)/os.h-FreeBSD \
+ $(O)/os.h-GNU \
$(O)/os.h-Linux \
$(O)/os.h-OpenBSD \
$(O)/os.h-SunOS5
@@ -92,6 +93,7 @@ os.h: $(SCRIPTS)/Configure-os.h \
os.c: ../src/os.c \
$(SCRIPTS)/Configure-os.c \
$(O)/os.c-FreeBSD \
+ $(O)/os.c-GNU \
$(O)/os.c-Linux \
$(O)/os.c-SunOS5
$(SHELL) $(SCRIPTS)/Configure-os.c
diff --git a/src/OS/unsupported/Makefile-GNU b/src/OS/Makefile-GNU
index e46434187..e46434187 100644
--- a/src/OS/unsupported/Makefile-GNU
+++ b/src/OS/Makefile-GNU
diff --git a/src/OS/os.c-FreeBSD b/src/OS/os.c-FreeBSD
index 4cc46c752..c0fd48df8 100644
--- a/src/OS/os.c-FreeBSD
+++ b/src/OS/os.c-FreeBSD
@@ -10,7 +10,7 @@ src/os.c file. */
/*************
-* Sendfile *
+Sendfile shim
*************/
ssize_t
@@ -23,4 +23,25 @@ if (sendfile(in, out, loff, cnt, NULL, &written, 0) < 0) return (ssize_t)-1;
return (ssize_t)written;
}
+/*************************************************
+TCP Fast Open: check that the ioctl is accepted
+*************************************************/
+
+#ifndef COMPILE_UTILITY
+void
+tfo_probe(void)
+{
+# ifdef TCP_FASTOPEN
+int sock;
+
+if ( (sock = socket(AF_INET, SOCK_STREAM, 0)) >= 0
+ && setsockopt(sock, IPPROTO_TCP, TCP_FASTOPEN, &on, sizeof(on) >= 0)
+ )
+ f.tcp_fastopen_ok = TRUE;
+close(sock);
+# endif
+}
+#endif
+
+
/* End of os.c-Linux */
diff --git a/src/OS/unsupported/os.c-GNU b/src/OS/os.c-GNU
index e5d6ff66c..e5d6ff66c 100644
--- a/src/OS/unsupported/os.c-GNU
+++ b/src/OS/os.c-GNU
diff --git a/src/OS/os.h-FreeBSD b/src/OS/os.h-FreeBSD
index 4f1c616f0..a15d47508 100644
--- a/src/OS/os.h-FreeBSD
+++ b/src/OS/os.h-FreeBSD
@@ -57,15 +57,9 @@ extern ssize_t os_sendfile(int, int, off_t *, size_t);
/*******************/
-/* TCP_FASTOPEN support. There does not seems to be a
-MSG_FASTOPEN defined yet... */
#define EXIM_TFO_PROBE
+#define EXIM_TFO_FREEBSD
-#include <netinet/tcp.h> /* for TCP_FASTOPEN */
-#include <sys/socket.h> /* for MSG_FASTOPEN */
-#if defined(TCP_FASTOPEN) && !defined(MSG_FASTOPEN)
-# define MSG_FASTOPEN 0x20000000
-#endif
/* for TCP state-variable values, for TFO logging */
#include <netinet/tcp_fsm.h>
diff --git a/src/OS/unsupported/os.h-GNU b/src/OS/os.h-GNU
index 44993163d..44993163d 100644
--- a/src/OS/unsupported/os.h-GNU
+++ b/src/OS/os.h-GNU