From 51f035aa3f2978709a531d46db07e28aec682020 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 10 Dec 2018 08:47:29 +0100 Subject: poll: Do not generate SIGPIPE with recv() in bsd_poll() Signed-off-by: Andreas Schneider --- src/poll.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/poll.c') diff --git a/src/poll.c b/src/poll.c index e3f5262e..01eb42d5 100644 --- a/src/poll.c +++ b/src/poll.c @@ -172,14 +172,19 @@ static short bsd_socket_compute_revents(int fd, short events) int sock_errno = errno; char data[64] = {0}; short revents = 0; + int flags = MSG_PEEK; int ret; +#ifdef MSG_NOSIGNAL + flags |= MSG_NOSIGNAL; +#endif + /* support for POLLHUP */ #ifdef _WIN32 WSASetLastError(0); #endif - ret = recv(fd, data, 64, MSG_PEEK); + ret = recv(fd, data, 64, flags); errno = save_errno; -- cgit v1.2.3