Skip to content
This repository was archived by the owner on Dec 18, 2018. It is now read-only.

Commit 87fbe89

Browse files
author
Cesar Blum Silveira
committed
PR feedback.
1 parent f926f56 commit 87fbe89

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

src/Microsoft.AspNetCore.Server.Kestrel/Internal/Http/FrameHeaders.Generated.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3404,7 +3404,6 @@ protected override bool RemoveFast(string key)
34043404
{
34053405
if (((_bits & 2048L) != 0))
34063406
{
3407-
_contentLength = null;
34083407
_bits &= ~2048L;
34093408
_headers._ContentLength = StringValues.Empty;
34103409
return true;
@@ -3701,7 +3700,7 @@ protected override void ClearFast()
37013700
{
37023701
_bits = 0;
37033702
_headers = default(HeaderReferences);
3704-
_contentLength = null;
3703+
37053704
MaybeUnknown?.Clear();
37063705
}
37073706

test/Microsoft.AspNetCore.Server.Kestrel.FunctionalTests/ResponseTests.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -499,16 +499,22 @@ await connection.ReceiveEnd(
499499
errorMessage.Exception.Message);
500500
}
501501

502-
[Fact]
503-
public async Task WhenAppSetsContentLengthToZeroAndDoesNotWriteNoErrorIsThrown()
502+
[Theory]
503+
[InlineData(false)]
504+
[InlineData(true)]
505+
public async Task WhenAppSetsContentLengthToZeroAndDoesNotWriteNoErrorIsThrown(bool flushResponse)
504506
{
505507
var testLogger = new TestApplicationErrorLogger();
506508
var serviceContext = new TestServiceContext { Log = new TestKestrelTrace(testLogger) };
507509

508-
using (var server = new TestServer(httpContext =>
510+
using (var server = new TestServer(async httpContext =>
509511
{
510512
httpContext.Response.ContentLength = 0;
511-
return TaskCache.CompletedTask;
513+
514+
if (flushResponse)
515+
{
516+
await httpContext.Response.Body.FlushAsync();
517+
}
512518
}, serviceContext))
513519
{
514520
using (var connection = server.CreateConnection())

tools/Microsoft.AspNetCore.Server.Kestrel.GeneratedCode/KnownHeaders.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ protected override bool RemoveFast(string key)
361361
if (""{header.Name}"".Equals(key, StringComparison.OrdinalIgnoreCase))
362362
{{
363363
if ({header.TestBit()})
364-
{{{If(header.Identifier == "ContentLength", () => $@"
364+
{{{If(loop.ClassName == "FrameResponseHeaders" && header.Identifier == "ContentLength", () => $@"
365365
_contentLength = null;")}
366366
{header.ClearBit()};
367367
_headers._{header.Identifier} = StringValues.Empty;{(header.EnhancedSetter == false ? "" : $@"
@@ -382,7 +382,7 @@ protected override void ClearFast()
382382
{{
383383
_bits = 0;
384384
_headers = default(HeaderReferences);
385-
_contentLength = null;
385+
{(loop.ClassName == "FrameResponseHeaders" ? "_contentLength = null;" : "")}
386386
MaybeUnknown?.Clear();
387387
}}
388388

0 commit comments

Comments
 (0)