Knut Franke <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to