libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 89d9493c84616eb423ab38248594f6d67cb867b5
parent e4d2c15c8dcb956c6e9bedd6e10b03ed979ae482
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Fri, 29 Apr 2016 19:44:12 +0000

daemon.c: OS X: set SO_NOSIGPIPE on listen socket.

Diffstat:
Msrc/microhttpd/daemon.c | 6++++++
1 file changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c @@ -3598,6 +3598,9 @@ create_listen_socket (struct MHD_Daemon *daemon, { MHD_socket fd; int cloexec_set; +#if defined(OSX) && defined(SOL_SOCKET) && defined(SO_NOSIGPIPE) + static const int on_val = 1; +#endif /* use SOCK_STREAM rather than ai_socktype: some getaddrinfo * implementations do not set ai_socktype, e.g. RHL6.2. */ @@ -3618,6 +3621,9 @@ create_listen_socket (struct MHD_Daemon *daemon, } if (MHD_INVALID_SOCKET == fd) return MHD_INVALID_SOCKET; +#if defined(OSX) && defined(SOL_SOCKET) && defined(SO_NOSIGPIPE) + setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, &on_val, sizeof(on_val)); +#endif if (MHD_NO == cloexec_set) make_noninheritable (daemon, fd); return fd;