diff options
author | Mike Hommey <mh@glandium.org> | 2008-02-27 21:35:50 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-02-27 15:37:57 -0800 |
commit | 9fc6440d783ca773353880aa97c23ed9c640d3c0 (patch) | |
tree | 44f9a25443a6f1a359bc4928934591dec6e5f047 /http.c | |
parent | 81fa145917c40b68a5e2cca6afc6a10cdfdbd25b (diff) | |
download | git-9fc6440d783ca773353880aa97c23ed9c640d3c0.tar.gz git-9fc6440d783ca773353880aa97c23ed9c640d3c0.tar.xz |
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 <mh@glandium.org>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http.c')
-rw-r--r-- | http.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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) |