X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=http-fetch.c;h=f39e748fc03af5dc8b50188ae99fe57a84dc64a7;hb=ceae78b438d2e5ca035aec9b067643ca79ed4ccd;hp=b12779dcb4a1ce92db94f545e1b78d7ea8b098e0;hpb=50496b2170cbe87b4c13f89f274aa2f181522bb9;p=git.git diff --git a/http-fetch.c b/http-fetch.c index b12779dc..f39e748f 100644 --- a/http-fetch.c +++ b/http-fetch.c @@ -269,6 +269,8 @@ static CURL* get_curl_handle(void) curl_low_speed_time); } + curl_easy_setopt(result, CURLOPT_FOLLOWLOCATION, 1); + return result; } @@ -569,7 +571,7 @@ static void release_request(struct transfer_request *request) } #ifdef USE_CURL_MULTI -void process_curl_messages(void) +static void process_curl_messages(void) { int num_messages; struct active_request_slot *slot; @@ -578,6 +580,7 @@ void process_curl_messages(void) while (curl_message != NULL) { if (curl_message->msg == CURLMSG_DONE) { + int curl_result = curl_message->data.result; slot = active_queue_head; while (slot != NULL && slot->curl != curl_message->easy_handle) @@ -587,7 +590,7 @@ void process_curl_messages(void) active_requests--; slot->done = 1; slot->in_use = 0; - slot->curl_result = curl_message->data.result; + slot->curl_result = curl_result; curl_easy_getinfo(slot->curl, CURLINFO_HTTP_CODE, &slot->http_code); @@ -599,8 +602,7 @@ void process_curl_messages(void) fprintf(stderr, "Received DONE message for unknown request!\n"); } if (request != NULL) { - request->curl_result = - curl_message->data.result; + request->curl_result = curl_result; request->http_code = slot->http_code; request->slot = NULL; request->state = COMPLETE; @@ -625,7 +627,7 @@ void process_curl_messages(void) } } -void process_request_queue(void) +static void process_request_queue(void) { struct transfer_request *request = request_queue_head; struct active_request_slot *slot = active_queue_head; @@ -786,7 +788,7 @@ static int fetch_alternates(char *base) buffer.buffer = data; if (get_verbosely) - fprintf(stderr, "Getting alternates list\n"); + fprintf(stderr, "Getting alternates list for %s\n", base); url = xmalloc(strlen(base) + 31); sprintf(url, "%s/objects/info/http-alternates", base); @@ -909,7 +911,7 @@ static int fetch_indices(struct alt_base *repo) buffer.buffer = data; if (get_verbosely) - fprintf(stderr, "Getting pack list\n"); + fprintf(stderr, "Getting pack list for %s\n", repo->base); url = xmalloc(strlen(repo->base) + 21); sprintf(url, "%s/objects/info/packs", repo->base);