1
1

poll: Return early for timeout and count every revent

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
Andreas Schneider 2018-12-10 09:25:33 +01:00
родитель 51f035aa3f
Коммит de54a88ee1

Просмотреть файл

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