diff options
author | Sam Vilain <sam.vilain@catalyst.net.nz> | 2007-11-23 01:07:00 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-12-04 07:11:53 +0100 |
commit | 9c5665aa3c938b0e085ca34a8126110edcffa217 (patch) | |
tree | b10f88b086253d085215cbfef72cff07b685339f /http.c | |
parent | Trace and quote with argv: get rid of unneeded count argument. (diff) | |
download | git-9c5665aa3c938b0e085ca34a8126110edcffa217.tar.xz git-9c5665aa3c938b0e085ca34a8126110edcffa217.zip |
Allow HTTP proxy to be overridden in config
The http_proxy / HTTPS_PROXY variables used by curl to control
proxying may not be suitable for git. Allow the user to override them
in the configuration file.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to '')
-rw-r--r-- | http.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -24,6 +24,7 @@ char *ssl_cainfo = NULL; long curl_low_speed_limit = -1; long curl_low_speed_time = -1; int curl_ftp_no_epsv = 0; +char *curl_http_proxy = NULL; struct curl_slist *pragma_header; @@ -160,6 +161,13 @@ static int http_options(const char *var, const char *value) curl_ftp_no_epsv = git_config_bool(var, value); return 0; } + if (!strcmp("http.proxy", var)) { + if (curl_http_proxy == NULL) { + curl_http_proxy = xmalloc(strlen(value)+1); + strcpy(curl_http_proxy, value); + } + return 0; + } /* Fall back on the default ones */ return git_default_config(var, value); @@ -205,6 +213,9 @@ static CURL* get_curl_handle(void) if (curl_ftp_no_epsv) curl_easy_setopt(result, CURLOPT_FTP_USE_EPSV, 0); + if (curl_http_proxy) + curl_easy_setopt(result, CURLOPT_PROXY, curl_http_proxy); + return result; } |