aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/poll.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/poll.c b/src/poll.c
index 01eb42d5..41231402 100644
--- a/src/poll.c
+++ b/src/poll.c
@@ -286,6 +286,10 @@ static int bsd_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout)
if (rc < 0) {
return -1;
}
+ /* A timeout occured */
+ if (rc == 0) {
+ return 0;
+ }
for (rc = 0, i = 0; i < nfds; i++) {
if (fds[i].fd >= 0) {
@@ -303,7 +307,7 @@ static int bsd_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout)
fds[i].revents |= fds[i].events & (POLLPRI | POLLRDBAND);
}
- if (fds[i].revents & ~POLLHUP) {
+ if (fds[i].revents != 0) {
rc++;
}
} else {