aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libssh/socket.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libssh/socket.c b/libssh/socket.c
index 96f29cb0..ea8979c1 100644
--- a/libssh/socket.c
+++ b/libssh/socket.c
@@ -188,7 +188,11 @@ int ssh_socket_pollcallback(ssh_poll_handle p, int fd, int revents, void *v_s){
}
}
}
+#ifdef _WIN32
+ if(revents & POLLOUT || revents & POLLWRNORM){
+#else
if(revents & POLLOUT){
+#endif
/* First, POLLOUT is a sign we may be connected */
if(s->state == SSH_SOCKET_CONNECTING){
ssh_log(s->session,SSH_LOG_PACKET,"Received POLLOUT in connecting state");
@@ -797,6 +801,9 @@ int ssh_socket_connect(ssh_socket s, const char *host, int port, const char *bin
s->state=SSH_SOCKET_CONNECTING;
/* POLLOUT is the event to wait for in a nonblocking connect */
ssh_poll_set_events(ssh_socket_get_poll_handle(s),POLLOUT);
+#ifdef _WIN32
+ ssh_poll_add_events(ssh_socket_get_poll_handle(s),POLLWRNORM);
+#endif
leave_function();
return SSH_OK;
}