Commit 1d977b78 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

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.
parent b3803903
Loading
Loading
Loading
Loading
+18 −14
Original line number Diff line number Diff line
@@ -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 &&
      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 &&
        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;
        }
      }