From 9fc6440d783ca773353880aa97c23ed9c640d3c0 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Wed, 27 Feb 2008 21:35:50 +0100 Subject: Set proxy override with http_init() In transport.c, proxy setting (the one from the remote conf) was set through curl_easy_setopt() call, while http.c already does the same with the http.proxy setting. We now just use this infrastructure instead, and make http_init() now take the struct remote as argument so that it can take the http_proxy setting from there, and any other property that would be added later. At the same time, we make get_http_walker() take a struct remote argument too, and pass it to http_init(), which makes remote defined proxy be used for more than get_refs_via_curl(). We leave out http-fetch and http-push, which don't use remotes for the moment, purposefully. Signed-off-by: Mike Hommey Acked-by: Daniel Barkalow Signed-off-by: Junio C Hamano --- http.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'http.c') diff --git a/http.c b/http.c index 5925d07478..8e554c0969 100644 --- a/http.c +++ b/http.c @@ -218,13 +218,16 @@ static CURL* get_curl_handle(void) return result; } -void http_init(void) +void http_init(struct remote *remote) { char *low_speed_limit; char *low_speed_time; curl_global_init(CURL_GLOBAL_ALL); + if (remote && remote->http_proxy) + curl_http_proxy = xstrdup(remote->http_proxy); + pragma_header = curl_slist_append(pragma_header, "Pragma: no-cache"); #ifdef USE_CURL_MULTI @@ -314,6 +317,11 @@ void http_cleanup(void) curl_slist_free_all(pragma_header); pragma_header = NULL; + + if (curl_http_proxy) { + free(curl_http_proxy); + curl_http_proxy = NULL; + } } struct active_request_slot *get_active_slot(void) -- cgit v1.2.3