summaryrefslogtreecommitdiff
path: root/http.c
diff options
context:
space:
mode:
authorSam Vilain <sam.vilain@catalyst.net.nz>2007-11-23 13:07:00 +1300
committerJunio C Hamano <gitster@pobox.com>2007-12-03 22:11:53 -0800
commit9c5665aa3c938b0e085ca34a8126110edcffa217 (patch)
treeb10f88b086253d085215cbfef72cff07b685339f /http.c
parentb319ce4c14f7fe0ee469a3f9def1098d84177849 (diff)
downloadgit-9c5665aa3c938b0e085ca34a8126110edcffa217.tar.gz
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 'http.c')
-rw-r--r--http.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/http.c b/http.c
index 87ebf7b865..e4aa9c19db 100644
--- a/http.c
+++ b/http.c
@@ -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;
}