From edffc2a291521dba6e7de57cb1d70316a3dac66d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 17 Jun 2010 11:19:05 +0200 Subject: poll: Some code cleanup for easier debugging. --- libssh/poll.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libssh') diff --git a/libssh/poll.c b/libssh/poll.c index f6a8174..94063d8 100644 --- a/libssh/poll.c +++ b/libssh/poll.c @@ -187,14 +187,16 @@ static int bsd_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) { if (FD_ISSET(fds[i].fd, &readfds)) { int save_errno = errno; char data[64] = {0}; + int ret; /* support for POLLHUP */ + ret = recv(fds[i].fd, data, 64, MSG_PEEK); #ifdef _WIN32 - if ((recv(fds[i].fd, data, 64, MSG_PEEK) == -1) && + if (ret == -1) && (errno == WSAESHUTDOWN || errno == WSAECONNRESET || errno == WSAECONNABORTED || errno == WSAENETRESET)) { #else - if ((recv(fds[i].fd, data, 64, MSG_PEEK) == -1) && + if (ret == -1) && (errno == ESHUTDOWN || errno == ECONNRESET || errno == ECONNABORTED || errno == ENETRESET)) { #endif -- cgit v1.2.3