System Version: macOS 10.12.1 (16B2553a)
Kernel Version: Darwin 16.1.0
cc queuefile.c
queuefile.c:73:3: warning: add explicit braces to avoid dangling else
[-Wdangling-else]
else if (j < 0)
^
queuefile.c:129:2: warning: '&&' within '||' [-Wlogical-op-parentheses]
&& (s = srcpath, (srcfd = openat(sdfd, CCS filename, O_RDONLY))
< 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
queuefile.c:129:2: note: place parentheses around the '&&' expression to
silence this warning
&& (s = srcpath, (srcfd = openat(sdfd, CCS filename, O_RDONLY))
< 0)
^
2 warnings generated.
cc smtp.c
smtp.c:2584:5: warning: add explicit braces to avoid dangling else
[-Wdangling-else]
else
^
smtp.c:4152:5: warning: add explicit braces to avoid dangling else
[-Wdangling-else]
else
^
2 warnings generated.
cc smtp_socks.c
cc tf_maildir.c
ar cq transports.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
file: transports.a(smtp_socks.o) has no symbols
ranlib transports.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
file: transports.a(smtp_socks.o) has no symbols
cc acl.c
acl.c:1656:7: warning: add explicit braces to avoid dangling else
[-Wdangling-else]
else
^
acl.c:3649:5: warning: add explicit braces to avoid dangling else
[-Wdangling-else]
else if (rc == FAIL || rc == FAIL_DROP) rc = OK;
^
acl.c:4358:2: warning: add explicit braces to avoid dangling else
[-Wdangling-else]
else
^
3 warnings generated.
cc base64.c
cc child.c
cc crypt16.c
cc daemon.c
daemon.c:1457:7: warning: add explicit braces to avoid dangling else
[-Wdangling-else]
else
^
daemon.c:1461:40: error: use of undeclared identifier 'SOL_TCP'
if (setsockopt(listen_sockets[sk], SOL_TCP, TCP_FASTOPEN,
&smtp_connect_backlog,
^
1 warning and 1 error generated.
make[1]: *** [daemon.o] Error 1
make: *** [all] Error 2
On 10/24/16 7:38 AM, The Doctor wrote:
On Mon, Oct 24, 2016 at 12:43:26PM +0100, Jeremy Harris wrote:
On 24/10/16 04:05, Phil Pennock wrote:
On 2016-10-24 at 02:34 +0100, Jeremy Harris wrote:
Of course, secondary thoughts, we don't know that the same sequences
of library calls on FreeBSD as on Linux will do what's wanted.
https://people.freebsd.org/~pkelsey/tfo-tools/
server:
rc = setsockopt(listen_fd, IPPROTO_TCP, TCP_FASTOPEN,
&on, sizeof(on));
* Need to guard against flag being undef
Done for TCP_FASTOPEN, probably need to do for MSG_FASTOPEN.
* Need to gracefully handle the setsockopt() call failing
OK, so
- The library call sequence is identical
- Use IPPROTO_TCP where Linux has SOL_TCP
- The current coding for failures on the server side is
ok (just ignore the setsockopt failure; we get a
non-fastopen socket as before) for non-supporting kernels
- The current coding for failures on the client side
needs thought. I made it log-noisy but functional
on the grounds that you do an extra syscall
[the sendto(..., MSG_FASTOPEN, ...)] getting a fail
every time on non-supporting kernels. There is
a transport control, defaulting to enabled.
Adding probe code in process startup might help, though
the re-execs we do defeat that. Queue-runners would be
ok but most deliveries are probably foreground.
Should I change the default to not-enabled, for the
medium-term?
Well there are other BSDs to here from.
Anyone from NetBsd, OpenBSD, DragonFly et al
get the same error?
--
Cheers,
jeremy
--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/