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