Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/aspnetcore.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Halter <halter73@gmail.com>2022-06-04 02:35:59 +0300
committerStephen Halter <halter73@gmail.com>2022-06-04 02:35:59 +0300
commit2a0e63bb234323f072d1ab3df447fa4e0c1a5fcc (patch)
tree4cbebbe3c12059620be130503717e66ba612ecff
parent5386635d9b03e334636336a767af01bd5e106b52 (diff)
Simplify AppCompletedWithNoResponseBodyOrTrailers pathhalter73/41843
-rw-r--r--src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameWriter.cs15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameWriter.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameWriter.cs
index aef197a59a..b197f531f1 100644
--- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameWriter.cs
+++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2FrameWriter.cs
@@ -197,6 +197,8 @@ internal sealed class Http2FrameWriter
}
else if (completed && producer.AppCompletedWithNoResponseBodyOrTrailers)
{
+ Debug.Assert(flushHeaders, "The app completed successfully without flushing headers!");
+
if (buffer.Length != 0)
{
_log.Http2UnexpectedDataRemaining(stream.StreamId, _connectionId);
@@ -205,8 +207,7 @@ internal sealed class Http2FrameWriter
{
stream.DecrementActiveClientStreamCount();
- // Headers have already been written and there is no other content to write
- flushResult = await FlushAsync(stream, flushHeaders, outputAborter: null, cancellationToken: default);
+ flushResult = await FlushEndOfStreamHeadersAsync(stream);
}
}
else
@@ -367,7 +368,7 @@ internal sealed class Http2FrameWriter
}
}
- private ValueTask<FlushResult> FlushAsync(Http2Stream stream, bool writeHeaders, IHttpOutputAborter? outputAborter, CancellationToken cancellationToken)
+ private ValueTask<FlushResult> FlushEndOfStreamHeadersAsync(Http2Stream stream)
{
lock (_writeLock)
{
@@ -376,16 +377,12 @@ internal sealed class Http2FrameWriter
return default;
}
- if (writeHeaders)
- {
- // write headers
- WriteResponseHeadersUnsynchronized(stream.StreamId, stream.StatusCode, Http2HeadersFrameFlags.END_STREAM, (HttpResponseHeaders)stream.ResponseHeaders);
- }
+ WriteResponseHeadersUnsynchronized(stream.StreamId, stream.StatusCode, Http2HeadersFrameFlags.END_STREAM, (HttpResponseHeaders)stream.ResponseHeaders);
var bytesWritten = _unflushedBytes;
_unflushedBytes = 0;
- return _flusher.FlushAsync(_minResponseDataRate, bytesWritten, outputAborter, cancellationToken);
+ return _flusher.FlushAsync(_minResponseDataRate, bytesWritten);
}
}