Hi, When an libssh2 call fails, pgAdmin III just shows the error code and nothing else. Consider the following patch - this is what I created while wondering why my hostkeys don't work:
diff --git a/pgadmin/utils/sshTunnel.cpp b/pgadmin/utils/sshTunnel.cpp index fd80214..e15f764 100644 --- a/pgadmin/utils/sshTunnel.cpp +++ b/pgadmin/utils/sshTunnel.cpp @@ -201,8 +201,13 @@ bool CSSHTunnelThread::Initialize() #endif if (rc) { - LogSSHTunnelErrors(wxString::Format(_("SSH error: Authentication by identity file failed with error code %d"), rc), GetId()); + char* errmsg; + int errmsg_len; + libssh2_session_last_error(m_session, &errmsg, &errmsg_len, 0); + wxString errmsg_s(errmsg, wxConvLibc); + LogSSHTunnelErrors(wxString::Format(_("SSH error: Authentication by identity file failed with error code %d [%s]"), rc, errmsg_s.c_str()), GetId()); Cleanup(); + free(errmsg); return false; } } Perhaps we could use this kind of routines wherever rc is being checked? Cheers, d33tah
signature.asc
Description: OpenPGP digital signature