From 726b795422e0b2a3b1773cf44888e26ea893362f Mon Sep 17 00:00:00 2001 From: Tratcher Date: Thu, 25 Nov 2021 19:09:16 +0000 Subject: [PATCH 1/2] Sync shared code from aspnetcore --- .../System/Net/Http/aspnetcore/Http3/QPack/QPackDecoder.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/Common/src/System/Net/Http/aspnetcore/Http3/QPack/QPackDecoder.cs b/src/libraries/Common/src/System/Net/Http/aspnetcore/Http3/QPack/QPackDecoder.cs index 77a3baa8a3de69..8488d0a0713219 100644 --- a/src/libraries/Common/src/System/Net/Http/aspnetcore/Http3/QPack/QPackDecoder.cs +++ b/src/libraries/Common/src/System/Net/Http/aspnetcore/Http3/QPack/QPackDecoder.cs @@ -176,15 +176,15 @@ public void Reset() _state = State.RequiredInsertCount; } - public void Decode(in ReadOnlySequence headerBlock, IHttpHeadersHandler handler) + public void Decode(in ReadOnlySequence headerBlock, bool endHeaders, IHttpHeadersHandler handler) { foreach (ReadOnlyMemory segment in headerBlock) { - Decode(segment.Span, handler); + Decode(segment.Span, endHeaders: false, handler); } } - public void Decode(ReadOnlySpan headerBlock, IHttpHeadersHandler handler) + public void Decode(ReadOnlySpan headerBlock, bool endHeaders, IHttpHeadersHandler handler) { foreach (byte b in headerBlock) { From 0c851f30fd86463fec4e4092c649c531ce8144be Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Fri, 26 Nov 2021 08:49:39 +1300 Subject: [PATCH 2/2] React to API change --- .../System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs b/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs index 64f9833e0aa237..5b2c4fd50340aa 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs @@ -839,8 +839,9 @@ private async ValueTask ReadHeadersAsync(long headersLength, CancellationToken c } int processLength = (int)Math.Min(headersLength, _recvBuffer.ActiveLength); + bool endHeaders = headersLength == processLength; - _headerDecoder.Decode(_recvBuffer.ActiveSpan.Slice(0, processLength), this); + _headerDecoder.Decode(_recvBuffer.ActiveSpan.Slice(0, processLength), endHeaders, this); _recvBuffer.Discard(processLength); headersLength -= processLength; }