Package Kit: convert HTTP error code only on BHttpRequest

Other request types exists such as BFileRequest.

Fixes #15675.

Change-Id: Ib2e07fad4dd9f682d2b9fc0cdbf0ca60ecd3adfb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2200
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: François Revol <revol@free.fr>
This commit is contained in:
X512 2020-02-05 15:51:27 +09:00 committed by Adrien Destugues
parent 5f4f455cfd
commit b3de8bea44

View File

@ -129,51 +129,53 @@ FetchFileJob::RequestCompleted(BUrlRequest* request, bool success)
fError = request->Status(); fError = request->Status();
if (success) { if (success) {
const BHttpResult& outResult = dynamic_cast<const BHttpResult&> const BHttpResult* httpResult = dynamic_cast<const BHttpResult*>
(request->Result()); (&request->Result());
uint16 code = outResult.StatusCode(); if (httpResult != NULL) {
uint16 codeClass = BHttpRequest::StatusCodeClass(code); uint16 code = httpResult->StatusCode();
uint16 codeClass = BHttpRequest::StatusCodeClass(code);
switch (codeClass) { switch (codeClass) {
case B_HTTP_STATUS_CLASS_CLIENT_ERROR: case B_HTTP_STATUS_CLASS_CLIENT_ERROR:
case B_HTTP_STATUS_CLASS_SERVER_ERROR: case B_HTTP_STATUS_CLASS_SERVER_ERROR:
fError = B_IO_ERROR; fError = B_IO_ERROR;
break; break;
default: default:
fError = B_OK; fError = B_OK;
break; break;
} }
switch (code) { switch (code) {
case B_HTTP_STATUS_OK: case B_HTTP_STATUS_OK:
fError = B_OK; fError = B_OK;
break; break;
case B_HTTP_STATUS_PARTIAL_CONTENT: case B_HTTP_STATUS_PARTIAL_CONTENT:
fError = B_PARTIAL_READ; fError = B_PARTIAL_READ;
break; break;
case B_HTTP_STATUS_REQUEST_TIMEOUT: case B_HTTP_STATUS_REQUEST_TIMEOUT:
case B_HTTP_STATUS_GATEWAY_TIMEOUT: case B_HTTP_STATUS_GATEWAY_TIMEOUT:
fError = B_DEV_TIMEOUT; fError = B_DEV_TIMEOUT;
break; break;
case B_HTTP_STATUS_NOT_IMPLEMENTED: case B_HTTP_STATUS_NOT_IMPLEMENTED:
case B_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: case B_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE:
fError = B_NOT_SUPPORTED; fError = B_NOT_SUPPORTED;
break; break;
case B_HTTP_STATUS_UNAUTHORIZED: case B_HTTP_STATUS_UNAUTHORIZED:
fError = B_PERMISSION_DENIED; fError = B_PERMISSION_DENIED;
break; break;
case B_HTTP_STATUS_FORBIDDEN: case B_HTTP_STATUS_FORBIDDEN:
case B_HTTP_STATUS_METHOD_NOT_ALLOWED: case B_HTTP_STATUS_METHOD_NOT_ALLOWED:
case B_HTTP_STATUS_NOT_ACCEPTABLE: case B_HTTP_STATUS_NOT_ACCEPTABLE:
fError = B_NOT_ALLOWED; fError = B_NOT_ALLOWED;
break; break;
case B_HTTP_STATUS_NOT_FOUND: case B_HTTP_STATUS_NOT_FOUND:
fError = B_NAME_NOT_FOUND; fError = B_NAME_NOT_FOUND;
break; break;
case B_HTTP_STATUS_BAD_GATEWAY: case B_HTTP_STATUS_BAD_GATEWAY:
fError = B_BAD_DATA; fError = B_BAD_DATA;
break; break;
default: default:
break; break;
}
} }
} }
} }