mirror of
https://github.com/curl/curl.git
synced 2026-05-14 08:36:21 +03:00
When doing auth negotiations or authprobing, we only consider HTTP code
<300 to be good.
This commit is contained in:
parent
cf3f1ef284
commit
cd7a0f829f
1 changed files with 7 additions and 4 deletions
11
lib/http.c
11
lib/http.c
|
|
@ -209,13 +209,15 @@ CURLcode Curl_http_auth_act(struct connectdata *conn)
|
|||
return data->set.http_fail_on_error?CURLE_HTTP_RETURNED_ERROR:CURLE_OK;
|
||||
|
||||
if(conn->bits.user_passwd &&
|
||||
((conn->keep.httpcode == 401) || conn->bits.authprobe)) {
|
||||
((conn->keep.httpcode == 401) ||
|
||||
(conn->bits.authprobe && conn->keep.httpcode < 300))) {
|
||||
pickhost = pickoneauth(&data->state.authhost);
|
||||
if(!pickhost)
|
||||
data->state.authproblem = TRUE;
|
||||
}
|
||||
if(conn->bits.proxy_user_passwd &&
|
||||
((conn->keep.httpcode == 407) || conn->bits.authprobe) ) {
|
||||
((conn->keep.httpcode == 407) ||
|
||||
(conn->bits.authprobe && conn->keep.httpcode < 300))) {
|
||||
pickproxy = pickoneauth(&data->state.authproxy);
|
||||
if(!pickproxy)
|
||||
data->state.authproblem = TRUE;
|
||||
|
|
@ -224,8 +226,9 @@ CURLcode Curl_http_auth_act(struct connectdata *conn)
|
|||
if(pickhost || pickproxy)
|
||||
conn->newurl = strdup(data->change.url); /* clone URL */
|
||||
|
||||
else if((data->info.httpcode < 400) &&
|
||||
(!data->state.authhost.done)) {
|
||||
else if((conn->keep.httpcode < 300) &&
|
||||
(!data->state.authhost.done) &&
|
||||
conn->bits.authprobe) {
|
||||
/* no (known) authentication available,
|
||||
authentication is not "done" yet and
|
||||
no authentication seems to be required and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue