poll: Do not generate SIGPIPE with recv() in bsd_poll()

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Andreas Schneider
2018-12-10 08:47:29 +01:00
parent edc7b96b2f
commit 51f035aa3f

View File

@@ -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;