aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2003-11-25 09:05:15 +0000
committerDaniel Stenberg <daniel@haxx.se>2003-11-25 09:05:15 +0000
commit1d977b78481d1d430cb05c8297ee412e62f31c8e (patch)
tree63d039b9c8806a89cb9cbe040cc2b8f94208f07b
parentb3803903d174fd15026a5daef397d73126f5392a (diff)
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.
-rw-r--r--lib/http.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/lib/http.c b/lib/http.c
index d5c8cf604..9389f5bbd 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;
}
}