summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-12-19 22:45:32 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-12-19 22:45:32 (GMT)
commitda72ee87fb5f27f44b1b48a18765ab1c6280f070 (patch)
treef9af3a68640a73ca1102e43ef64b3cd98f2e8ce7
parent8a2882f23ecce3a8742743555a408e508d4db806 (diff)
parent3680f16f9d6832dc78c6b80f1e8a546385d946f9 (diff)
downloadgit-da72ee87fb5f27f44b1b48a18765ab1c6280f070.zip
git-da72ee87fb5f27f44b1b48a18765ab1c6280f070.tar.gz
git-da72ee87fb5f27f44b1b48a18765ab1c6280f070.tar.bz2
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 25a8b1a..c2f81cd 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 c4e14c0..051fe6e 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;
}