Skip to content

Commit ada3bdf

Browse files
Fix max redirect count (#20428)
Without this change, RedirectHandler always follows MaxRedirects + 1. If MaxRedirects was initially set to 1, the body of the while statement is executed twice. This defect expresses itself when calling WebApplicationFactory<Startup>.CreateClient() with WebApplicationFactoryClientOptions.MaxAutomaticRedirections >= 1 and .AllowAutoRedirects = true in integration tests.
1 parent f9ee790 commit ada3bdf

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/Mvc/Mvc.Testing/src/Handlers/RedirectHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
5454
var originalRequestContent = HasBody(request) ? await DuplicateRequestContent(request) : null;
5555
CopyRequestHeaders(request.Headers, redirectRequest.Headers);
5656
var response = await base.SendAsync(request, cancellationToken);
57-
while (IsRedirect(response) && remainingRedirects >= 0)
57+
while (IsRedirect(response) && remainingRedirects > 0)
5858
{
5959
remainingRedirects--;
6060
UpdateRedirectRequest(response, redirectRequest, originalRequestContent);
@@ -168,4 +168,4 @@ private bool IsRedirect(HttpResponseMessage response) =>
168168
response.StatusCode == HttpStatusCode.RedirectKeepVerb ||
169169
(int)response.StatusCode == 308;
170170
}
171-
}
171+
}

0 commit comments

Comments
 (0)