diff options
author | Andreas Schneider <asn@cynapses.org> | 2010-07-06 23:18:16 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cynapses.org> | 2010-07-06 23:18:16 +0200 |
commit | 94fdcf7a2a5d41220e667cb85d1f485254020d61 (patch) | |
tree | adcb39231577fd1938b8cd60d40f66912e215fff | |
parent | 59a95fc3a773b42c8de003e55c18dcada53c2976 (diff) | |
download | libssh-94fdcf7a2a5d41220e667cb85d1f485254020d61.tar.gz libssh-94fdcf7a2a5d41220e667cb85d1f485254020d61.tar.xz libssh-94fdcf7a2a5d41220e667cb85d1f485254020d61.zip |
socket: Fixed ssh_socket_poll().
If we don't have date to read or write, leave ssh_socket_poll().
-rw-r--r-- | libssh/socket.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libssh/socket.c b/libssh/socket.c index c88a149d..b722462d 100644 --- a/libssh/socket.c +++ b/libssh/socket.c @@ -484,9 +484,14 @@ int ssh_socket_poll(struct socket *s, int *writeable, int *except) { if (!s->data_to_read) { fd->events |= POLLIN; - } - if (!s->data_to_write) { + } else if (!s->data_to_write) { fd->events |= POLLOUT; + } else { + *except = 1; + *writeable = 0; + + leave_function(); + return 1; } /* Make the call, and listen for errors */ |