diff options
Diffstat (limited to 'src/socket.c')
-rw-r--r-- | src/socket.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/socket.c b/src/socket.c index 85b87b7..93e8d5d 100644 --- a/src/socket.c +++ b/src/socket.c @@ -230,7 +230,10 @@ int ssh_socket_pollcallback(struct ssh_poll_handle_struct *p, socket_t fd, int r /* Check if we are in a connecting state */ if(s->state==SSH_SOCKET_CONNECTING){ s->state=SSH_SOCKET_ERROR; - getsockopt(fd,SOL_SOCKET,SO_ERROR,(char *)&err,&errlen); + r = getsockopt(fd, SOL_SOCKET, SO_ERROR, (char *)&err, &errlen); + if (r < 0) { + err = errno; + } s->last_errno=err; ssh_socket_close(s); if(s->callbacks && s->callbacks->connected) |