git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Allow HTTP proxy to be overridden in config

From
Sam Vilain <sam.vilain@catalyst.net.nz>
Date
Nov 23, 2007, 00:07 UTC
Message-ID
<1195776420-22075-1-git-send-email-sam.vilain@catalyst.net.nz>
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.
---
  In particular, privoxy will block directories called /ad/ ... d'oh!
 Documentation/config.txt |    4 ++++
 http.c                   |   11 +++++++++++
 2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 7ee97df..859a7f3 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -515,6 +515,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
diff --git a/http.c b/http.c
index c6fb8ac..8f60d89 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;
 }
 
-- 
1.5.3.5
Next: Junio C Hamano
Message 1 of 9 in “Allow HTTP proxy to be overridden in config”
  1. Allow HTTP proxy to be overridden in configSam Vilain, Nov 23, 2007
  2. Junio C HamanoNov 23, 2007
  3. Sam VilainNov 23, 2007
  4. Junio C HamanoDec 1, 2007
  5. Andreas EricssonDec 3, 2007
  6. Johannes SchindelinDec 3, 2007
  7. Sam VilainDec 3, 2007
  8. Junio C HamanoDec 4, 2007
  9. Sam VilainDec 4, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.