Start adding some expanded error conversion of libssh2 errors.

This commit is contained in:
James Housley
2007-08-03 13:57:37 +00:00
parent 9fa05db83b
commit e7a50e37d6

View File

@@ -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 */ not return or even depend on libssh2 errors in the public libcurl API */
if (err == LIBSSH2_FX_NO_SUCH_FILE) if (err == LIBSSH2_FX_NO_SUCH_FILE)
return CURLE_REMOTE_FILE_NOT_FOUND; return CURLE_REMOTE_FILE_NOT_FOUND;
return CURLE_SSH; return CURLE_SSH;
} }
static CURLcode libssh2_session_error_to_CURLE(int err) static CURLcode libssh2_session_error_to_CURLE(int err)
{ {
(void)err; if (err == LIBSSH2_ERROR_ALLOC)
return CURLE_OUT_OF_MEMORY;
return CURLE_SSH; return CURLE_SSH;
} }
@@ -350,12 +351,12 @@ static CURLcode ssh_statemach_act(struct connectdata *conn)
strlen(sftp_scp->user)); strlen(sftp_scp->user));
if (!sshc->authlist) { 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) { LIBSSH2_ERROR_EAGAIN) {
break; break;
} else { } else {
state(conn, SSH_SESSION_FREE); state(conn, SSH_SESSION_FREE);
sshc->actualCode = CURLE_OUT_OF_MEMORY; sshc->actualCode = libssh2_session_error_to_CURLE(err);
break; break;
} }
} }