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/