From 94fdcf7a2a5d41220e667cb85d1f485254020d61 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 6 Jul 2010 23:18:16 +0200 Subject: socket: Fixed ssh_socket_poll(). If we don't have date to read or write, leave ssh_socket_poll(). --- libssh/socket.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'libssh') 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 */ -- cgit