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>
This commit is contained in:
parent
b319ce4c14
commit
9c5665aa3c
@ -550,6 +550,10 @@ specified as 'gitcvs.<access_method>.<varname>' (where 'access_method'
|
||||
is one of "ext" and "pserver") to make them apply only for the given
|
||||
access method.
|
||||
|
||||
http.proxy::
|
||||
Override the HTTP proxy, normally configured using the 'http_proxy'
|
||||
environment variable (see gitlink:curl[1]).
|
||||
|
||||
http.sslVerify::
|
||||
Whether to verify the SSL certificate when fetching or pushing
|
||||
over HTTPS. Can be overridden by the 'GIT_SSL_NO_VERIFY' environment
|
||||
|
11
http.c
11
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user