diff options
-rw-r--r-- | methods/https.cc | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/methods/https.cc b/methods/https.cc index 432a64303..a15915910 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -419,10 +419,25 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_slist_free_all(headers); // cleanup - if (success != 0) + if (success != CURLE_OK) { - _error->Error("%s", curl_errorstr); - return false; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wswitch" + switch (success) + { + case CURLE_COULDNT_RESOLVE_PROXY: + case CURLE_COULDNT_RESOLVE_HOST: + SetFailReason("ResolveFailure"); + break; + case CURLE_COULDNT_CONNECT: + SetFailReason("ConnectionRefused"); + break; + case CURLE_OPERATION_TIMEDOUT: + SetFailReason("Timeout"); + break; + } +#pragma GCC diagnostic pop + return _error->Error("%s", curl_errorstr); } // server says file not modified |