Knut Franke <k.franke@xxxxxxxxxxxxxxxxxxxx> writes: > @@ -337,6 +342,24 @@ static void var_override(const char **var, char *value) > > static void init_curl_proxy_auth(CURL *result) > { > + if (proxy_auth.username) { > + struct strbuf s = STRBUF_INIT; Having this variable triggers compilation error with newer libcurl version as it is only used in the #else clause X-<. > + if (!proxy_auth.password) > + credential_fill(&proxy_auth); > +#if LIBCURL_VERSION_NUM >= 0x071301 > + curl_easy_setopt(result, CURLOPT_PROXYUSERNAME, > + proxy_auth.username); > + curl_easy_setopt(result, CURLOPT_PROXYPASSWORD, > + proxy_auth.password); > +#else > + strbuf_addstr_urlencode(&s, proxy_auth.username, 1); > + strbuf_addch(&s, ':'); > + strbuf_addstr_urlencode(&s, proxy_auth.password, 1); > + curl_proxyuserpwd = strbuf_detach(&s, NULL); > + curl_easy_setopt(result, CURLOPT_PROXYUSERPWD, curl_proxyuserpwd); > +#endif > + } It is probably easier to follow the flow of the logic of the primary interface (i.e. init_curl_proxy_auth()) if you split this part into its own helper function that deals with implementation detail, e.g. http.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/http.c b/http.c index 1f269b0..fad2ba5 100644 --- a/http.c +++ b/http.c @@ -340,24 +340,30 @@ static void var_override(const char **var, char *value) } } -static void init_curl_proxy_auth(CURL *result) +static void set_proxyauth_name_password(CURL *result) { - if (proxy_auth.username) { - struct strbuf s = STRBUF_INIT; - if (!proxy_auth.password) - credential_fill(&proxy_auth); #if LIBCURL_VERSION_NUM >= 0x071301 curl_easy_setopt(result, CURLOPT_PROXYUSERNAME, proxy_auth.username); curl_easy_setopt(result, CURLOPT_PROXYPASSWORD, proxy_auth.password); #else + struct strbuf s = STRBUF_INIT; + strbuf_addstr_urlencode(&s, proxy_auth.username, 1); strbuf_addch(&s, ':'); strbuf_addstr_urlencode(&s, proxy_auth.password, 1); curl_proxyuserpwd = strbuf_detach(&s, NULL); curl_easy_setopt(result, CURLOPT_PROXYUSERPWD, curl_proxyuserpwd); #endif +} + +static void init_curl_proxy_auth(CURL *result) +{ + if (proxy_auth.username) { + if (!proxy_auth.password) + credential_fill(&proxy_auth); + set_proxyauth_name_password(result); } var_override(&http_proxy_authmethod, getenv("GIT_HTTP_PROXY_AUTHMETHOD")); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html