From 4896c4885e160383bfd460a5eaa9c75cb2f70fbc Mon Sep 17 00:00:00 2001 From: Nelson Benitez Leon Date: Tue, 13 Mar 2012 15:04:42 +0100 Subject: [PATCH] http: handle proxy authentication failure (error 407) Handle http 407 error code by asking for credentials and retrying request in case credentials were not present, or marking credentials as rejected if they were already provided. Signed-off-by: Nelson Benitez Leon Signed-off-by: Junio C Hamano --- http.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/http.c b/http.c index 7215f4976b..85399bf78e 100644 --- a/http.c +++ b/http.c @@ -842,6 +842,15 @@ static int http_request(const char *url, void *result, int target, int options) init_curl_http_auth(slot->curl); ret = HTTP_REAUTH; } + } else if (results.http_code == 407) { /* Proxy authentication failure */ + if (proxy_auth.username && proxy_auth.password) { + credential_reject(&proxy_auth); + ret = HTTP_NOAUTH; + } else { + credential_fill(&proxy_auth); + set_proxy_auth(slot->curl); + ret = HTTP_REAUTH; + } } else { if (!curl_errorstr[0]) strlcpy(curl_errorstr,