]> granicus.if.org Git - curl/commitdiff
Start adding some expanded error conversion of libssh2 errors.
authorJames Housley <jim@thehousleys.net>
Fri, 3 Aug 2007 13:57:37 +0000 (13:57 +0000)
committerJames Housley <jim@thehousleys.net>
Fri, 3 Aug 2007 13:57:37 +0000 (13:57 +0000)
lib/ssh.c

index 332ae9da25839b9caebfd2043de72aa438baafcf..ec1914a3394ba61745a578045966bb1b9824a944 100644 (file)
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -174,14 +174,15 @@ static CURLcode sftp_libssh2_error_to_CURLE(unsigned long err)
      not return or even depend on libssh2 errors in the public libcurl API */
 
   if (err == LIBSSH2_FX_NO_SUCH_FILE)
-     return CURLE_REMOTE_FILE_NOT_FOUND;
+    return CURLE_REMOTE_FILE_NOT_FOUND;
 
   return CURLE_SSH;
 }
 
 static CURLcode libssh2_session_error_to_CURLE(int err)
 {
-  (void)err;
+  if (err == LIBSSH2_ERROR_ALLOC)
+    return CURLE_OUT_OF_MEMORY;
   return CURLE_SSH;
 }
 
@@ -350,12 +351,12 @@ static CURLcode ssh_statemach_act(struct connectdata *conn)
                                              strlen(sftp_scp->user));
 
       if (!sshc->authlist) {
-        if (libssh2_session_last_errno(sftp_scp->ssh_session) ==
+        if ((err = libssh2_session_last_errno(sftp_scp->ssh_session)) ==
                         LIBSSH2_ERROR_EAGAIN) {
           break;
         } else {
           state(conn, SSH_SESSION_FREE);
-          sshc->actualCode = CURLE_OUT_OF_MEMORY;
+          sshc->actualCode = libssh2_session_error_to_CURLE(err);
           break;
         }
       }