X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/059f2aced50773fa38661a5a30c54260aee4bf55..c47288eb9c3656ea36f3dd121cfd486fc03d5681:/test/src/server.c diff --git a/test/src/server.c b/test/src/server.c index fe1c79f02..8fda1d4b0 100644 --- a/test/src/server.c +++ b/test/src/server.c @@ -159,7 +159,8 @@ putchar('\n'); #define udn 2 /* Unix domain socket number */ #define skn 2 /* Potential number of sockets */ -int main(int argc, char **argv) +int +main(int argc, char **argv) { int i; int port = 0; @@ -278,7 +279,7 @@ if (initial_pause > 0) if (port == 0) /* Unix domain */ { - if (debug) printf("%d: Creating Unix domain socket\n", time(NULL)); + if (debug) printf("%ld: Creating Unix domain socket\n", (long) time(NULL)); listen_socket[udn] = socket(PF_UNIX, SOCK_STREAM, 0); if (listen_socket[udn] < 0) { @@ -298,7 +299,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 +331,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 +439,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 } @@ -645,7 +651,7 @@ for (count = 0; count < connection_count; count++) { end = "\n"; ss += 3; len -= 3; } fwrite(ss, 1, len, out); - if (*end) fprintf(out, end); + if (*end) fputs(end, out); } else if (isdigit((unsigned char)ss[0]))