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

Re: [PATCH 2/3] http: try standard proxy env vars when http.proxy config option is not set

From
Jeff King <peff@peff.net>
Date
Feb 28, 2012, 19:15 UTC
Message-ID
<20120228191514.GD11260@sigill.intra.peff.net>
In-Reply-To
<4F4CCE8A.4010800@seap.minhap.es>
On Tue, Feb 28, 2012 at 01:54:34PM +0100, Nelson Benitez Leon wrote:
Show 18 quoted lines
> diff --git a/http.c b/http.c
> index 8ac8eb6..79cbe50 100644
> --- a/http.c
> +++ b/http.c
> @@ -295,6 +295,16 @@ static CURL *get_curl_handle(void)
>  	if (curl_ftp_no_epsv)
>  		curl_easy_setopt(result, CURLOPT_FTP_USE_EPSV, 0);
>  
> +	if (!curl_http_proxy) {
> +		const char *env_proxy;
> +		env_proxy = getenv("HTTP_PROXY");
> +		if (!env_proxy) {
> +			env_proxy = getenv("http_proxy");
> +		}
> +		if (env_proxy) {
> +			curl_http_proxy = xstrdup(env_proxy);
> +		}
> +	}
Usually we would prefer environment variables to config. So that:
  $ git config http.proxy foo
  $ HTTP_PROXY=bar git fetch

would use "bar" as the proxy, not "foo". But your code above would prefer "foo", right?

>From reading Thomas's messages, I think there is a slight complication

in that right now curl is respecting $http_proxy, and it is probably letting git's http.proxy overwrite (though I didn't check). If that is the case, then that is IMHO a bug that should be fixed. So the rationale for this patch would be three-fold:

  1. Support HTTP_PROXY, which curl does not accept.
  2. Fix the precedence of environment variables over config.
  3. By handling the proxy variables ourselves, we have more flexibility
     in handling the authentication.
-Peff
Previous: Daniel StenbergNext: Sam Vilain
Message 10 of 24 in “http: try standard proxy env vars when http.proxy config option is not set”
  1. 2/3 http: try standard proxy env vars when http.proxy config option is not setNelson Benitez Leon, Feb 28, 2012
  2. Thomas RastFeb 28, 2012
  3. Nelson Benitez LeonFeb 28, 2012
  4. Thomas RastFeb 28, 2012
  5. Junio C HamanoFeb 28, 2012
  6. Nelson Benitez LeonFeb 29, 2012
  7. Junio C HamanoFeb 29, 2012
  8. Nelson Benitez LeonMar 1, 2012
  9. Daniel StenbergMar 4, 2012
  10. Jeff KingFeb 28, 2012
  11. Sam VilainFeb 28, 2012
  12. Jeff KingFeb 28, 2012
  13. Matthieu MoyFeb 29, 2012
  14. Nelson Benitez LeonFeb 29, 2012
  15. Jeff KingFeb 29, 2012
  16. Nelson Benitez LeonMar 1, 2012
  17. Jeff KingMar 1, 2012
  18. James CloosMar 11, 2012
  19. Junio C HamanoMar 11, 2012
  20. Nelson Benitez LeonMar 13, 2012
  21. Junio C HamanoMar 14, 2012
  22. Nelson Benitez LeonMar 14, 2012
  23. Junio C HamanoMar 14, 2012
  24. Nelson Benitez LeonMar 15, 2012

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.