in extensions/sftp/client/SFTPClient.cpp [66:98]
static SFTPError libssh2_sftp_error_to_sftp_error(unsigned long libssh2_sftp_error) { // NOLINT(runtime/int) unsigned long comes from libssh2 API
switch (libssh2_sftp_error) {
case LIBSSH2_FX_OK:
return SFTPError::Ok;
case LIBSSH2_FX_NO_SUCH_FILE:
case LIBSSH2_FX_NO_SUCH_PATH:
return SFTPError::FileDoesNotExist;
case LIBSSH2_FX_FILE_ALREADY_EXISTS:
return SFTPError::FileAlreadyExists;
case LIBSSH2_FX_PERMISSION_DENIED:
case LIBSSH2_FX_WRITE_PROTECT:
case LIBSSH2_FX_LOCK_CONFLICT:
return SFTPError::PermissionDenied;
case LIBSSH2_FX_NO_CONNECTION:
case LIBSSH2_FX_CONNECTION_LOST:
return SFTPError::CommunicationFailure;
case LIBSSH2_FX_EOF:
case LIBSSH2_FX_FAILURE:
case LIBSSH2_FX_BAD_MESSAGE:
case LIBSSH2_FX_OP_UNSUPPORTED:
case LIBSSH2_FX_INVALID_HANDLE:
case LIBSSH2_FX_NO_MEDIA:
case LIBSSH2_FX_NO_SPACE_ON_FILESYSTEM:
case LIBSSH2_FX_QUOTA_EXCEEDED:
case LIBSSH2_FX_UNKNOWN_PRINCIPAL:
case LIBSSH2_FX_DIR_NOT_EMPTY:
case LIBSSH2_FX_NOT_A_DIRECTORY:
case LIBSSH2_FX_INVALID_FILENAME:
case LIBSSH2_FX_LINK_LOOP:
default:
return SFTPError::Unexpected;
}
}