]> granicus.if.org Git - curl/commitdiff
When doing auth negotiations or authprobing, we only consider HTTP code
authorDaniel Stenberg <daniel@haxx.se>
Sat, 19 Jun 2004 10:10:24 +0000 (10:10 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 19 Jun 2004 10:10:24 +0000 (10:10 +0000)
<300 to be good.

lib/http.c

index 14f45881dd6e04d13e1d911fd5c55c40e1f6b4ad..74422c58e6bb85d36c8f46cc4fbbf2a6554b5c2a 100644 (file)
@@ -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