summaryrefslogtreecommitdiff
path: root/test/src
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2018-10-30 22:09:15 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2018-10-30 22:36:55 +0000
commitb536a578fbabdc9d39da53d54a8d7700ba537431 (patch)
treeb3eef31b81c965a39b1c72b697b9244cb90a2466 /test/src
parent7df6163adc1837c48842471307ecb18aaded4530 (diff)
downloadexim4-b536a578fbabdc9d39da53d54a8d7700ba537431.tar.gz
MacOS: TCP Fast Open
Diffstat (limited to 'test/src')
-rw-r--r--test/src/server.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/test/src/server.c b/test/src/server.c
index fe1c79f02..ba731625b 100644
--- a/test/src/server.c
+++ b/test/src/server.c
@@ -298,7 +298,7 @@ else
printf("IPv6 socket creation failed: %s\n", strerror(errno));
exit(1);
}
-#ifdef TCP_FASTOPEN
+#if defined(TCP_FASTOPEN) && !defined(__APPLE__)
if (tfo)
{
int backlog = 5;
@@ -330,7 +330,7 @@ else
printf("IPv4 socket creation failed: %s\n", strerror(errno));
exit(1);
}
-#ifdef TCP_FASTOPEN
+#if defined(TCP_FASTOPEN) && !defined(__APPLE__)
if (tfo)
{
int backlog = 5;
@@ -438,16 +438,21 @@ error because it means that the IPv6 socket will handle IPv4 connections. Don't
output anything, because it will mess up the test output, which will be
different for systems that do this and those that don't. */
-for (i = 0; i <= skn; i++)
+for (i = 0; i <= skn; i++) if (listen_socket[i] >= 0)
{
- if (listen_socket[i] >= 0 && listen(listen_socket[i], 5) < 0)
- {
+ if (listen(listen_socket[i], 5) < 0)
if (i != v4n || listen_socket[v6n] < 0 || errno != EADDRINUSE)
{
printf("listen() failed: %s\n", strerror(errno));
exit(1);
}
- }
+
+#if defined(TCP_FASTOPEN) && defined(__APPLE__)
+ if ( tfo
+ && setsockopt(listen_socket[v4n], IPPROTO_TCP, TCP_FASTOPEN, &on, sizeof(on))
+ && debug)
+ printf("setsockopt TCP_FASTOPEN: %s\n", strerror(errno));
+#endif
}