From c8568e139ed2149fbfb7ef9a8d819d5b6b7c554f Mon Sep 17 00:00:00 2001 From: Nick Hengeveld Date: Tue, 31 Jan 2006 11:06:55 -0800 Subject: Fix HTTP request result processing after slot reuse Add a way to store the results of an HTTP request when a slot finishes so the results can be processed after the slot has been reused. Signed-off-by: Nick Hengeveld Signed-off-by: Junio C Hamano --- http.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'http.c') diff --git a/http.c b/http.c index 75e6717a94..eefb0f03d2 100644 --- a/http.c +++ b/http.c @@ -335,6 +335,7 @@ struct active_request_slot *get_active_slot(void) active_requests++; slot->in_use = 1; slot->local = NULL; + slot->results = NULL; slot->callback_data = NULL; slot->callback_func = NULL; curl_easy_setopt(slot->curl, CURLOPT_HTTPHEADER, pragma_header); @@ -421,7 +422,13 @@ static void finish_active_slot(struct active_request_slot *slot) active_requests--; slot->in_use = 0; curl_easy_getinfo(slot->curl, CURLINFO_HTTP_CODE, &slot->http_code); - + + /* Store slot results so they can be read after the slot is reused */ + if (slot->results != NULL) { + slot->results->curl_result = slot->curl_result; + slot->results->http_code = slot->http_code; + } + /* Run callback if appropriate */ if (slot->callback_func != NULL) { slot->callback_func(slot->callback_data); -- cgit v1.2.3