Re: SSH error messages not shown - Mailing list pgadmin-hackers

From Akshay Joshi
Subject Re: SSH error messages not shown
Date
Msg-id CANxoLDfLB6_Xnfb8BEWrSeSufWWAwrZtn_x+tV8cfy=WnkPHDg@mail.gmail.com
Whole thread Raw
In response to Re: SSH error messages not shown  (Akshay Joshi <akshay.joshi@enterprisedb.com>)
Responses Re: SSH error messages not shown
List pgadmin-hackers
Hi Jacek

On Mon, Jun 15, 2015 at 10:40 AM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Sure.

On Sun, Jun 14, 2015 at 3:13 PM, Dave Page <dpage@pgadmin.org> wrote:
Akshay, can you look into this please?

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK:http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On 13 Jun 2015, at 16:22, Jacek Wielemborek <d33tah@gmail.com> wrote:

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?
       I have reviewed your patch and it looks good to have error message with error number. I have made some changes in the "LogSSHTunnelErrors" function to avoid duplicate logic for each error message. I have added one default parameter of the session object in the "LogSSHTunnelErrors" function. If we would like to log error message with error number, will have to pass session object. Attached is the modified patch, can you please check it is working or not for your test case.   


Cheers,
d33tah




--
Akshay Joshi
Principal Software Engineer 


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Principal Software Engineer 


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
Attachment

pgadmin-hackers by date:

Previous
From: Akshay Joshi
Date:
Subject: Re: valgrind complains a lot when trying to establish an SSH tunnel while giving wrong key
Next
From: John Obaterspok
Date:
Subject: Re: [PATCH] Fix crash when disabling auto commit