diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-12-19 14:45:32 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-12-19 14:45:32 -0800 |
commit | da72ee87fb5f27f44b1b48a18765ab1c6280f070 (patch) | |
tree | f9af3a68640a73ca1102e43ef64b3cd98f2e8ce7 | |
parent | Merge branch 'jk/http-walker-limit-redirect-2.9' (diff) | |
parent | http-walker: complain about non-404 loose object errors (diff) | |
download | tgif-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.c | 7 | ||||
-rw-r--r-- | http.c | 2 |
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); @@ -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; } |