diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-12-10 09:25:33 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2019-01-09 15:50:24 +0100 |
commit | de54a88ee1b2eec67b064417d8b79774e7cd69a6 (patch) | |
tree | 5a7c54fc7cc2933efcb531a86a52a8fd1241d421 | |
parent | 51f035aa3f2978709a531d46db07e28aec682020 (diff) | |
download | libssh-de54a88ee1b2eec67b064417d8b79774e7cd69a6.tar.gz libssh-de54a88ee1b2eec67b064417d8b79774e7cd69a6.tar.xz libssh-de54a88ee1b2eec67b064417d8b79774e7cd69a6.zip |
poll: Return early for timeout and count every revent
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | src/poll.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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 { |