diff --git a/http.c b/http.c index 3a6872bb6612b4..be1fd6f41e8241 100644 --- a/http.c +++ b/http.c @@ -1908,10 +1908,6 @@ static int handle_curl_result(struct slot_results *results) else if (results->http_code == 401) { http_auth.ntlm_suppressed = (results->auth_avail & CURLAUTH_NTLM) && !(http_auth_any & CURLAUTH_NTLM); - if (http_auth.ntlm_suppressed && http_auth.ntlm_allow) { - http_auth_methods |= CURLAUTH_NTLM; - return HTTP_REAUTH; - } if ((http_auth.username && http_auth.password) ||\ (http_auth.authtype && http_auth.credential)) { if (http_auth.multistage) { @@ -2373,6 +2369,13 @@ static int http_request_reauth(const char *url, credential_fill(the_repository, &http_auth, 1); + /* + * Re-enable NTLM auth if the helper allows it and we would + * otherwise suppress authentication via NTLM. + */ + if (http_auth.ntlm_suppressed && http_auth.ntlm_allow) + http_auth_methods |= CURLAUTH_NTLM; + ret = http_request(url, result, target, options); } return ret;