aboutsummaryrefslogtreecommitdiff
path: root/src/socket.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2018-12-10 10:21:04 +0100
committerAndreas Schneider <asn@cryptomilk.org>2019-01-09 15:50:24 +0100
commit0170ed888335843b1cbf0c3cfc3c4cc6b73f5219 (patch)
tree5db1619b67826404188c843ed0ce14f38e86abd2 /src/socket.c
parentde54a88ee1b2eec67b064417d8b79774e7cd69a6 (diff)
downloadlibssh-0170ed888335843b1cbf0c3cfc3c4cc6b73f5219.tar.gz
libssh-0170ed888335843b1cbf0c3cfc3c4cc6b73f5219.tar.xz
libssh-0170ed888335843b1cbf0c3cfc3c4cc6b73f5219.zip
socket: Set socket error to get better error messages
We do not want an error for ssh_socket_close() here. Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/socket.c')
-rw-r--r--src/socket.c5
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,