http: always use any proxy auth method available
authorEnrique Tobis <Enrique.Tobis@twosigma.com>
Fri, 26 Jun 2015 18:19:04 +0000 (18:19 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 29 Jun 2015 16:57:43 +0000 (09:57 -0700)
We set CURLOPT_PROXYAUTH to use the most secure authentication
method available only when the user has set configuration variables
to specify a proxy. However, libcurl also supports specifying a
proxy through environment variables. In that case libcurl defaults
to only using the Basic proxy authentication method, because we do
not use CURLOPT_PROXYAUTH.

Set CURLOPT_PROXYAUTH to always use the most secure authentication
method available, even when there is no git configuration telling us
to use a proxy. This allows the user to use environment variables to
configure a proxy that requires an authentication method different
from Basic.

Signed-off-by: Enrique A. Tobis <etobis@twosigma.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
http.c
diff --git a/http.c b/http.c
index 4b179f6fc8f29c1683b187393203d20f95d29157..9a7e0892e479a977f575a549699bc76e969634be 100644 (file)
--- a/http.c
+++ b/http.c
@@ -406,10 +406,10 @@ static CURL *get_curl_handle(void)
 
        if (curl_http_proxy) {
                curl_easy_setopt(result, CURLOPT_PROXY, curl_http_proxy);
+       }
 #if LIBCURL_VERSION_NUM >= 0x070a07
-               curl_easy_setopt(result, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
+       curl_easy_setopt(result, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
 #endif
-       }
 
        set_curl_keepalive(result);