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 9823d8e1..f297bcf7 100644 --- a/src/socket.c +++ b/src/socket.c @@ -244,8 +244,11 @@ int ssh_socket_pollcallback(struct ssh_poll_handle_struct *p, if (rc < 0) { err = errno; } - s->last_errno = err; ssh_socket_close(s); + /* Overwrite ssh_socket_close() error with the real socket error */ + s->last_errno = err; + errno = err; + if (s->callbacks != NULL && s->callbacks->connected != NULL) { s->callbacks->connected(SSH_SOCKET_CONNECTED_ERROR, err, |