summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2016-12-19 14:45:32 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-12-19 14:45:32 -0800
commitda72ee87fb5f27f44b1b48a18765ab1c6280f070 (patch)
treef9af3a68640a73ca1102e43ef64b3cd98f2e8ce7
parentMerge branch 'jk/http-walker-limit-redirect-2.9' (diff)
parenthttp-walker: complain about non-404 loose object errors (diff)
downloadtgif-da72ee87fb5f27f44b1b48a18765ab1c6280f070.tar.xz
Merge branch 'jk/http-walker-limit-redirect'
Update the error messages from the dumb-http client when it fails to obtain loose objects; we used to give sensible error message only upon 404 but we now forbid unexpected redirects that needs to be reported with something sensible. * jk/http-walker-limit-redirect: http-walker: complain about non-404 loose object errors
-rw-r--r--http-walker.c7
-rw-r--r--http.c2
2 files changed, 6 insertions, 3 deletions
diff --git a/http-walker.c b/http-walker.c
index 25a8b1ad4b..c2f81cd6af 100644
--- a/http-walker.c
+++ b/http-walker.c
@@ -482,10 +482,13 @@ static int fetch_object(struct walker *walker, unsigned char *sha1)
* we turned off CURLOPT_FAILONERROR to avoid losing a
* persistent connection and got CURLE_OK.
*/
- if (req->http_code == 404 && req->curl_result == CURLE_OK &&
+ if (req->http_code >= 300 && req->curl_result == CURLE_OK &&
(starts_with(req->url, "http://") ||
- starts_with(req->url, "https://")))
+ starts_with(req->url, "https://"))) {
req->curl_result = CURLE_HTTP_RETURNED_ERROR;
+ xsnprintf(req->errorstr, sizeof(req->errorstr),
+ "HTTP request failed");
+ }
if (obj_req->state == ABORTED) {
ret = error("Request for %s aborted", hex);
diff --git a/http.c b/http.c
index c4e14c0af1..051fe6e5ab 100644
--- a/http.c
+++ b/http.c
@@ -2058,7 +2058,7 @@ static size_t fwrite_sha1_file(char *ptr, size_t eltsize, size_t nmemb,
if (c != CURLE_OK)
die("BUG: curl_easy_getinfo for HTTP code failed: %s",
curl_easy_strerror(c));
- if (slot->http_code >= 400)
+ if (slot->http_code >= 300)
return size;
}