From: Daniel Stenberg Date: Fri, 2 Jun 2023 16:08:23 +0000 (+0200) Subject: libssh2: provide error message when setting host key type fails X-Git-Tag: curl-8_2_0~163 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=93df7134b5a16aaf68c4994c637f9b6b3e7a27c5;p=thirdparty%2Fcurl.git libssh2: provide error message when setting host key type fails Ref: https://curl.se/mail/archive-2023-06/0001.html Closes #11240 --- diff --git a/lib/vssh/libssh2.c b/lib/vssh/libssh2.c index 0b11fde63c..98fce5177f 100644 --- a/lib/vssh/libssh2.c +++ b/lib/vssh/libssh2.c @@ -889,6 +889,7 @@ static CURLcode ssh_force_knownhost_key_type(struct Curl_easy *data) } if(found) { + int rc; infof(data, "Found host %s in %s", conn->host.name, data->set.str[STRING_SSH_KNOWNHOSTS]); @@ -938,9 +939,15 @@ static CURLcode ssh_force_knownhost_key_type(struct Curl_easy *data) } infof(data, "Set \"%s\" as SSH hostkey type", hostkey_method); - result = libssh2_session_error_to_CURLE( - libssh2_session_method_pref( - sshc->ssh_session, LIBSSH2_METHOD_HOSTKEY, hostkey_method)); + rc = libssh2_session_method_pref(sshc->ssh_session, + LIBSSH2_METHOD_HOSTKEY, hostkey_method); + if(rc) { + char *errmsg = NULL; + int errlen; + libssh2_session_last_error(sshc->ssh_session, &errmsg, &errlen, 0); + failf(data, "libssh2: %s", errmsg); + result = libssh2_session_error_to_CURLE(rc); + } } else { infof(data, "Did not find host %s in %s",