[haiku-commits] haiku: hrev51465 - src/kits/package

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 7 Oct 2017 22:15:08 +0200 (CEST)

hrev51465 adds 1 changeset to branch 'master'
old head: 1f424b6ac87a54971b29222a8ac73ff0207a8ba2
new head: a00bd28a9bb524e4bd2fa12d3f0c45835ecea36b
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=a00bd28a9bb5+%5E1f424b6ac87a

----------------------------------------------------------------------------

a00bd28a9bb5: Package Kit: map some curl errors to Be error codes
  
  Trying to get something more useful than "aborted: no error" in case of
  network errors in pkgman.

                             [ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev51465
Commit:      a00bd28a9bb524e4bd2fa12d3f0c45835ecea36b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a00bd28a9bb5
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Sat Oct  7 20:05:47 2017 UTC

----------------------------------------------------------------------------

1 file changed, 34 insertions(+), 4 deletions(-)
src/kits/package/FetchFileJob.cpp | 38 +++++++++++++++++++++++++++++++----

----------------------------------------------------------------------------

diff --git a/src/kits/package/FetchFileJob.cpp 
b/src/kits/package/FetchFileJob.cpp
index 1c88cc1..fa55dcd 100644
--- a/src/kits/package/FetchFileJob.cpp
+++ b/src/kits/package/FetchFileJob.cpp
@@ -120,11 +120,41 @@ FetchFileJob::Execute()
 
        result = curl_easy_perform(handle);
        curl_easy_cleanup(handle);
-       if (result != CURLE_OK) {
-               // TODO: map more curl error codes to ours for more
-               // precise error reporting
-               return B_ERROR;
+
+       switch (result) {
+               case CURLE_OK:
+                       return B_OK;
+               case CURLE_UNSUPPORTED_PROTOCOL:
+                       return EPROTONOSUPPORT;
+               case CURLE_FAILED_INIT:
+                       return B_NO_INIT;
+               case CURLE_URL_MALFORMAT:
+                       return B_BAD_VALUE;
+               case CURLE_NOT_BUILT_IN:
+                       return B_NOT_SUPPORTED;
+               case CURLE_COULDNT_RESOLVE_PROXY:
+               case CURLE_COULDNT_RESOLVE_HOST:
+                       return B_NAME_NOT_FOUND;
+               case CURLE_COULDNT_CONNECT:
+                       return ECONNREFUSED;
+               case CURLE_FTP_WEIRD_SERVER_REPLY:
+                       return B_BAD_DATA;
+               case CURLE_REMOTE_ACCESS_DENIED:
+                       return B_NOT_ALLOWED;
+               case CURLE_PARTIAL_FILE:
+                       return B_PARTIAL_READ;
+               case CURLE_OUT_OF_MEMORY:
+                       return B_NO_MEMORY;
+               case CURLE_OPERATION_TIMEDOUT:
+                       return B_TIMED_OUT;
+               case CURLE_SSL_CONNECT_ERROR:
+                       return B_BAD_REPLY;
+               default:
+                       // TODO: map more curl error codes to ours for more
+                       // precise error reporting
+                       return B_ERROR;
        }
+
        #endif /* !HAIKU_BOOTSTRAP_BUILD */
 
        return B_OK;


Other related posts:

  • » [haiku-commits] haiku: hrev51465 - src/kits/package - pulkomandy