diff options
author | Daniel Stenberg <daniel@haxx.se> | 2010-01-26 12:25:03 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2010-01-26 12:25:03 +0000 |
commit | 9bc897f380423f40bc9e5f22c12c670f5a28a369 (patch) | |
tree | 007581d3ed8efa519466d183b1ff71d2b0987ae8 | |
parent | 9b0e57b0f79c4e267c9953e5fba69c3ecf8a5951 (diff) |
Andre Guibert de Bruet improved the libssh2 error code translation
-rw-r--r-- | lib/ssh.c | 32 |
1 files changed, 30 insertions, 2 deletions
@@ -264,8 +264,36 @@ static CURLcode sftp_libssh2_error_to_CURLE(int err) static CURLcode libssh2_session_error_to_CURLE(int err) { - if(err == LIBSSH2_ERROR_ALLOC) - return CURLE_OUT_OF_MEMORY; + switch (err) { + /* Ordered by order of appearance in libssh2.h */ + case LIBSSH2_ERROR_NONE: + return CURLE_OK; + + case LIBSSH2_ERROR_SOCKET_NONE: + return CURLE_COULDNT_CONNECT; + + case LIBSSH2_ERROR_ALLOC: + return CURLE_OUT_OF_MEMORY; + + case LIBSSH2_ERROR_SOCKET_SEND: + return CURLE_SEND_ERROR; + + case LIBSSH2_ERROR_HOSTKEY_INIT: + case LIBSSH2_ERROR_HOSTKEY_SIGN: + case LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED: + case LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED: + return CURLE_PEER_FAILED_VERIFICATION; + + case LIBSSH2_ERROR_PASSWORD_EXPIRED: + return CURLE_LOGIN_DENIED; + + case LIBSSH2_ERROR_SOCKET_TIMEOUT: + case LIBSSH2_ERROR_TIMEOUT: + return CURLE_OPERATION_TIMEDOUT; + + case LIBSSH2_ERROR_EAGAIN: + return CURLE_AGAIN; + } /* TODO: map some more of the libssh2 errors to the more appropriate CURLcode error code, and possibly add a few new SSH-related one. We must however |