On Thu, May 03, 2012 at 06:40:06PM +0200, Nelson Benitez Leon wrote: > An earlier patch broke http_proxy specified as <host>:<port> by abusing > credential_from_url(). Teach the function to parse that format, but the > caller needs to be updated to handle the case where there is no protocol > in the parse result. > > Also allow keyring implementations to differentiate authentication > material meant for http proxies and http destinations by using a > different token "http-proxy" to consult them for the former. > > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> Should this be: From: Junio C Hamano <gitster@xxxxxxxxx> ? Also, any time we read "an earlier patch broke..." and that earlier patch is in this series, I have to wonder why the patches are not simply reordered. Shouldn't the first half of this one come first, and just explain the rationale as "teach credential_from_url to handle protocol-less URLs, since those are used for proxy specifications, which we will need to parse in a later patch". > diff --git a/http.c b/http.c > index 02f9fcd..22ffe0c 100644 > --- a/http.c > +++ b/http.c > @@ -366,17 +366,20 @@ static CURL *get_curl_handle(const char *url) > } > > if (curl_http_proxy) { > - struct strbuf proxyhost = STRBUF_INIT; > - > - if (!proxy_auth.host) /* check to parse only once */ > + if (!proxy_auth.host) { > credential_from_url(&proxy_auth, curl_http_proxy); > + if (!proxy_auth.protocol || > + !strcmp(proxy_auth.protocol, "http")) { > + free(proxy_auth.protocol); > + proxy_auth.protocol = xstrdup("http-proxy"); > + } > + } And then this hunk would just get squashed in in the first place. > if (http_proactive_auth && proxy_auth.username && !proxy_auth.password) > /* proxy string has username but no password, ask for password */ > credential_fill(&proxy_auth); > > - strbuf_addf(&proxyhost, "%s://%s", proxy_auth.protocol, proxy_auth.host); > - curl_easy_setopt(result, CURLOPT_PROXY, strbuf_detach(&proxyhost, NULL)); > + curl_easy_setopt(result, CURLOPT_PROXY, curl_http_proxy); And this too, which gets rid of my complaints about the previous patch. -Peff -- 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