Fixed ssh_socket_poll behaviour

This commit is contained in:
Aris Adamantiadis
2010-07-07 10:00:09 +02:00
parent 94fdcf7a2a
commit af8315b9ce

View File

@@ -484,16 +484,12 @@ int ssh_socket_poll(struct socket *s, int *writeable, int *except) {
if (!s->data_to_read) {
fd->events |= POLLIN;
} else if (!s->data_to_write) {
fd->events |= POLLOUT;
} else {
*except = 1;
*writeable = 0;
leave_function();
return 1;
}
if (!s->data_to_write) {
fd->events |= POLLOUT;
}
/* do not do poll if fd->events is empty, we already know the response */
if(fd->events != 0){
/* Make the call, and listen for errors */
rc = ssh_poll(fd, 1, 0);
if (rc < 0) {
@@ -501,6 +497,7 @@ int ssh_socket_poll(struct socket *s, int *writeable, int *except) {
leave_function();
return -1;
}
}
if (!s->data_to_read) {
s->data_to_read = fd->revents & POLLIN;