From X512 <danger_mail@xxxxxxx>:
X512 has uploaded this change for review. (
https://review.haiku-os.org/c/haiku/+/2200 ;)
Change subject: Package Kit: convert HTTP error code only on BHttpRequest
......................................................................
Package Kit: convert HTTP error code only on BHttpRequest
Other request types exists such as BFileRequest.
Fixes #15675.
Change-Id: Ib2e07fad4dd9f682d2b9fc0cdbf0ca60ecd3adfb
---
M src/kits/package/FetchFileJob.cpp
1 file changed, 46 insertions(+), 44 deletions(-)
git pull ssh://git.haiku-os.org:22/haiku refs/changes/00/2200/1
diff --git a/src/kits/package/FetchFileJob.cpp
b/src/kits/package/FetchFileJob.cpp
index d5e3bc4..07853d7 100644
--- a/src/kits/package/FetchFileJob.cpp
+++ b/src/kits/package/FetchFileJob.cpp
@@ -129,51 +129,53 @@
fError = request->Status();
if (success) {
- const BHttpResult& outResult = dynamic_cast<const BHttpResult&>
- (request->Result());
- uint16 code = outResult.StatusCode();
- uint16 codeClass = BHttpRequest::StatusCodeClass(code);
+ const BHttpResult* httpResult = dynamic_cast<const BHttpResult*>
+ (&request->Result());
+ if (httpResult != NULL) {
+ uint16 code = httpResult->StatusCode();
+ uint16 codeClass = BHttpRequest::StatusCodeClass(code);
- switch (codeClass) {
- case B_HTTP_STATUS_CLASS_CLIENT_ERROR:
- case B_HTTP_STATUS_CLASS_SERVER_ERROR:
- fError = B_IO_ERROR;
- break;
- default:
- fError = B_OK;
- break;
- }
- switch (code) {
- case B_HTTP_STATUS_OK:
- fError = B_OK;
- break;
- case B_HTTP_STATUS_PARTIAL_CONTENT:
- fError = B_PARTIAL_READ;
- break;
- case B_HTTP_STATUS_REQUEST_TIMEOUT:
- case B_HTTP_STATUS_GATEWAY_TIMEOUT:
- fError = B_DEV_TIMEOUT;
- break;
- case B_HTTP_STATUS_NOT_IMPLEMENTED:
- case B_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE:
- fError = B_NOT_SUPPORTED;
- break;
- case B_HTTP_STATUS_UNAUTHORIZED:
- fError = B_PERMISSION_DENIED;
- break;
- case B_HTTP_STATUS_FORBIDDEN:
- case B_HTTP_STATUS_METHOD_NOT_ALLOWED:
- case B_HTTP_STATUS_NOT_ACCEPTABLE:
- fError = B_NOT_ALLOWED;
- break;
- case B_HTTP_STATUS_NOT_FOUND:
- fError = B_NAME_NOT_FOUND;
- break;
- case B_HTTP_STATUS_BAD_GATEWAY:
- fError = B_BAD_DATA;
- break;
- default:
- break;
+ switch (codeClass) {
+ case B_HTTP_STATUS_CLASS_CLIENT_ERROR:
+ case B_HTTP_STATUS_CLASS_SERVER_ERROR:
+ fError = B_IO_ERROR;
+ break;
+ default:
+ fError = B_OK;
+ break;
+ }
+ switch (code) {
+ case B_HTTP_STATUS_OK:
+ fError = B_OK;
+ break;
+ case B_HTTP_STATUS_PARTIAL_CONTENT:
+ fError = B_PARTIAL_READ;
+ break;
+ case B_HTTP_STATUS_REQUEST_TIMEOUT:
+ case B_HTTP_STATUS_GATEWAY_TIMEOUT:
+ fError = B_DEV_TIMEOUT;
+ break;
+ case B_HTTP_STATUS_NOT_IMPLEMENTED:
+ case B_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE:
+ fError = B_NOT_SUPPORTED;
+ break;
+ case B_HTTP_STATUS_UNAUTHORIZED:
+ fError = B_PERMISSION_DENIED;
+ break;
+ case B_HTTP_STATUS_FORBIDDEN:
+ case B_HTTP_STATUS_METHOD_NOT_ALLOWED:
+ case B_HTTP_STATUS_NOT_ACCEPTABLE:
+ fError = B_NOT_ALLOWED;
+ break;
+ case B_HTTP_STATUS_NOT_FOUND:
+ fError = B_NAME_NOT_FOUND;
+ break;
+ case B_HTTP_STATUS_BAD_GATEWAY:
+ fError = B_BAD_DATA;
+ break;
+ default:
+ break;
+ }
}
}
}
--
To view, visit https://review.haiku-os.org/c/haiku/+/2200
To unsubscribe, or for help writing mail filters, visit
https://review.haiku-os.org/settings
Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: Ib2e07fad4dd9f682d2b9fc0cdbf0ca60ecd3adfb
Gerrit-Change-Number: 2200
Gerrit-PatchSet: 1
Gerrit-Owner: X512 <danger_mail@xxxxxxx>
Gerrit-MessageType: newchange