[haiku-commits] Change in haiku[master]: Package Kit: convert HTTP error code only on BHttpRequest

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: waddlesplash <waddlesplash@xxxxxxxxx>, haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 5 Feb 2020 06:57:06 +0000

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

Other related posts:

  • » [haiku-commits] Change in haiku[master]: Package Kit: convert HTTP error code only on BHttpRequest - Gerrit