Re: [exim] [exim-dev] Exim 4.82 RC1 uploaded

Top Page
Delete this message
Reply to this message
Author: Jeremy Harris
Date:  
To: exim-users
Subject: Re: [exim] [exim-dev] Exim 4.82 RC1 uploaded
On 28/09/13 00:30, list2 wrote:
> It won't build on OSX.
>
> cc acl.c
> acl.c:2904:23: error: use of undeclared identifier 'MSG_NOSIGNAL'
> r = send(s, arg, len, MSG_NOSIGNAL);
>                        ^
> 1 error generated.
> make[1]: *** [acl.o] Error 1
> make: *** [all] Error 2
> dnsbureau:exim-4.82_RC1 root#

>
>
> What is the side effect of not using MSG_NOSIGNAL? I could just >
> #define it to 0, but I don't know if this would cause any problems.


Thanks for testing the RC.

The Linux manpage describe the flag as "don't SIGPIPE on
stream-oriented socket when the other end breaks the connection".
Since the socket in use is SOCK_DGRAM it looks like a no-op to me;
probably just habit on the part of the writer, and you could happily
define it to zero.


>
> I think OS X OS X requires SO_NOSIGPIPE instead. This one builds too,
> but I don't know if I'm messing things up.
>
> #ifndef MSG_NOSIGNAL
> #define MSG_NOSIGNAL SO_NOSIGPIPE
> #endif


I'd not use SO_NOSIGPIPE even given the (presumed) similar function;
that will be a socket-option bit and there's no telling what it
might do when used for a send flag.


Unless someone knowing more speaks up I'll remove that flag from
the send call.
-- 
Cheers,
    Jeremy