aboutsummaryrefslogtreecommitdiff
path: root/libssh/poll.c
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/poll.c')
-rw-r--r--libssh/poll.c6
1 files changed, 4 insertions, 2 deletions
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