1
1

poll: Reformat ssh_poll_ctx_dopoll()

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
Andreas Schneider 2018-11-21 09:45:41 +01:00
родитель 531b80a60b
Коммит 0e7a962417

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

@ -591,7 +591,8 @@ void ssh_poll_ctx_remove(ssh_poll_ctx ctx, ssh_poll_handle p) {
* SSH_AGAIN Timeout occured * SSH_AGAIN Timeout occured
*/ */
int ssh_poll_ctx_dopoll(ssh_poll_ctx ctx, int timeout) { int ssh_poll_ctx_dopoll(ssh_poll_ctx ctx, int timeout)
{
int rc; int rc;
int i, used; int i, used;
ssh_poll_handle p; ssh_poll_handle p;
@ -599,8 +600,9 @@ int ssh_poll_ctx_dopoll(ssh_poll_ctx ctx, int timeout) {
int revents; int revents;
struct ssh_timestamp ts; struct ssh_timestamp ts;
if (!ctx->polls_used) if (ctx->polls_used == 0) {
return SSH_ERROR; return SSH_ERROR;
}
ssh_timestamp_init(&ts); ssh_timestamp_init(&ts);
do { do {
@ -608,10 +610,13 @@ int ssh_poll_ctx_dopoll(ssh_poll_ctx ctx, int timeout) {
rc = ssh_poll(ctx->pollfds, ctx->polls_used, tm); rc = ssh_poll(ctx->pollfds, ctx->polls_used, tm);
} while (rc == -1 && errno == EINTR); } while (rc == -1 && errno == EINTR);
if(rc < 0) if (rc < 0) {
return SSH_ERROR; return SSH_ERROR;
if (rc == 0) }
if (rc == 0) {
return SSH_AGAIN; return SSH_AGAIN;
}
used = ctx->polls_used; used = ctx->polls_used;
for (i = 0; i < used && rc > 0; ) { for (i = 0; i < used && rc > 0; ) {
if (!ctx->pollfds[i].revents || ctx->pollptrs[i]->lock) { if (!ctx->pollfds[i].revents || ctx->pollptrs[i]->lock) {
@ -631,7 +636,7 @@ int ssh_poll_ctx_dopoll(ssh_poll_ctx ctx, int timeout) {
} }
/* the poll was removed, reload the used counter and start again */ /* the poll was removed, reload the used counter and start again */
used = ctx->polls_used; used = ctx->polls_used;
i=0; i = 0;
} else { } else {
ctx->pollfds[i].revents = 0; ctx->pollfds[i].revents = 0;
ctx->pollfds[i].events = p->events; ctx->pollfds[i].events = p->events;