X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/830a1b8c9e9a26dc1101167ac66a75c444902c4d..30c8107e9c56d7d78dcf9136f94aeed9d631dfb3:/methods/https.cc diff --git a/methods/https.cc b/methods/https.cc index 432a64303..8d9454545 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -419,16 +419,31 @@ 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 if (Server->Result == 304 || curl_condition_unmet == 1) { - unlink(File->Name().c_str()); + RemoveFile("https", File->Name()); Res.IMSHit = true; Res.LastModified = Itm->LastModified; Res.Size = 0; @@ -446,14 +461,14 @@ bool HttpsMethod::Fetch(FetchItem *Itm) SetFailReason(err); _error->Error("%i %s", Server->Result, Server->Code); // unlink, no need keep 401/404 page content in partial/ - unlink(File->Name().c_str()); + RemoveFile("https", File->Name()); return false; } // invalid range-request if (Server->Result == 416) { - unlink(File->Name().c_str()); + RemoveFile("https", File->Name()); delete File; Redirect(Itm->Uri); return true;