From 1d977b78481d1d430cb05c8297ee412e62f31c8e Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 25 Nov 2003 09:05:15 +0000 Subject: [PATCH] When basic is the only auth wanted (which it is by default), the auth phase is always considered done immediately as Basic needs to extra passes. This fix corrects bug report #848371. --- lib/http.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/lib/http.c b/lib/http.c index d5c8cf6..9389f5b 100644 --- a/lib/http.c +++ b/lib/http.c @@ -227,13 +227,15 @@ CURLcode http_auth_headers(struct connectdata *conn, } else #endif - if((data->state.authwant == CURLAUTH_BASIC) && /* Basic */ - conn->bits.proxy_user_passwd && - !checkheaders(data, "Proxy-authorization:")) { - auth=(char *)"Basic"; - result = Curl_output_basic_proxy(conn); - if(result) - return result; + if(data->state.authwant == CURLAUTH_BASIC) { + /* Basic */ + if(conn->bits.proxy_user_passwd && + !checkheaders(data, "Proxy-authorization:")) { + auth=(char *)"Basic"; + result = Curl_output_basic_proxy(conn); + if(result) + return result; + } *ready = TRUE; /* Switch to web authentication after proxy authentication is done */ Curl_http_auth_stage(data, 401); @@ -276,13 +278,15 @@ CURLcode http_auth_headers(struct connectdata *conn, return result; *ready = TRUE; } - else if((data->state.authwant == CURLAUTH_BASIC) && /* Basic */ - conn->bits.user_passwd && - !checkheaders(data, "Authorization:")) { - auth=(char *)"Basic"; - result = Curl_output_basic(conn); - if(result) - return result; + else if(data->state.authwant == CURLAUTH_BASIC) {/* Basic */ + if(conn->bits.user_passwd && + !checkheaders(data, "Authorization:")) { + auth=(char *)"Basic"; + result = Curl_output_basic(conn); + if(result) + return result; + } + /* basic is always ready */ *ready = TRUE; } } -- 2.7.4