Re: Cloning from sites with 404 overridden
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:22
Nick Hengeveld [off-list ref] writes:
Some HTTP server environments return a 200 status and text/html error document or a redirect to one rather than a 404 status if a loose object does not exist. This patch detects and reports this condition to differentiate between a misconfigured server and an actual corrupt object on the server.
quoted hunk
61069cc348640fef2b8c503b8b8f00f689872cabdiff --git a/http-fetch.c b/http-fetch.c index dc67218..ee5b585 100644 --- a/http-fetch.c +++ b/http-fetch.c@@ -41,6 +41,7 @@ struct object_request CURLcode curl_result;... + char *content_type; unsigned char real_sha1[20]; ...
You probably need only one bit here,...
quoted hunk
@@ -258,9 +259,15 @@ static void finish_object_request(struct static void process_object_response(void *callback_data)... + curl_easy_getinfo(obj_req->slot->curl, CURLINFO_CONTENT_TYPE, + &content_type); + if (content_type) + obj_req->content_type = strdup(content_type); +
... and note if that is an HTML document or not. We do bend backwards to support ISP HTTP servers, but this might be going a bit too far. Also I wonder if ISP runs a really dumb-friendly configured server that defaults to text/html unless the mimemap says otherwise. Loose object files do not have suffixes and I am expecting these servers would give whatever the server default is.