summaryrefslogtreecommitdiff
path: root/http.c
diff options
context:
space:
mode:
authorMike Hommey <mh@glandium.org>2008-02-27 20:35:50 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-02-27 23:37:57 (GMT)
commit9fc6440d783ca773353880aa97c23ed9c640d3c0 (patch)
tree44f9a25443a6f1a359bc4928934591dec6e5f047 /http.c
parent81fa145917c40b68a5e2cca6afc6a10cdfdbd25b (diff)
downloadgit-9fc6440d783ca773353880aa97c23ed9c640d3c0.zip
git-9fc6440d783ca773353880aa97c23ed9c640d3c0.tar.gz
git-9fc6440d783ca773353880aa97c23ed9c640d3c0.tar.bz2
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.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/http.c b/http.c
index 5925d07..8e554c0 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)