]> granicus.if.org Git - curl/commitdiff
ssh: log the libssh2 error message when ssh session startup fails
authorJDepooter <joel.depooter@safe.com>
Thu, 17 Jan 2019 01:18:20 +0000 (17:18 -0800)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 17 Jan 2019 14:03:16 +0000 (15:03 +0100)
When a ssh session startup fails, it is useful to know why it has
failed. This commit changes the message from:
   "Failure establishing ssh session"
to something like this, for example:
   "Failure establishing ssh session: -5, Unable to exchange encryption keys"

Closes #3481

lib/ssh.c

index f3b0a58be64de53f2deeab472df59782003eea25..8c68adcc17ea10e7a095ed4f63e89c78ab18df2f 100644 (file)
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -667,7 +667,10 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
         break;
       }
       if(rc) {
-        failf(data, "Failure establishing ssh session");
+        char *err_msg = NULL;
+        (void)libssh2_session_last_error(sshc->ssh_session, &err_msg, NULL, 0);
+        failf(data, "Failure establishing ssh session: %d, %s", rc, err_msg);
+
         state(conn, SSH_SESSION_FREE);
         sshc->actualcode = CURLE_FAILED_INIT;
         break;