Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReadHeadersAsync()

async ValueTask System.Net.Http.Http3RequestStream.ReadHeadersAsync ( long headersLength,
CancellationToken cancellationToken )
inlineprivate

Definition at line 769 of file Http3RequestStream.cs.

770 {
772 {
773 _stream.AbortWrite(263L);
775 }
777 while (headersLength != 0L)
778 {
779 if (_recvBuffer.ActiveLength == 0)
780 {
781 _recvBuffer.EnsureAvailableSpace(1);
782 int num = await _stream.ReadAsync(_recvBuffer.AvailableMemory, cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
783 if (num == 0)
784 {
785 if (System.Net.NetEventSource.Log.IsEnabled())
786 {
787 Trace($"Server closed response stream before entire header payload could be read. {headersLength:N0} bytes remaining.", "ReadHeadersAsync");
788 }
789 throw new HttpRequestException(System.SR.net_http_invalid_response_premature_eof);
790 }
791 _recvBuffer.Commit(num);
792 }
793 int num2 = (int)Math.Min(headersLength, _recvBuffer.ActiveLength);
794 _headerDecoder.Decode(_recvBuffer.ActiveSpan.Slice(0, num2), this);
795 _recvBuffer.Discard(num2);
797 }
799 }
void Trace(string message, [CallerMemberName] string memberName=null)
void Decode(ReadOnlySpan< byte > headerBlock, IHttpHeadersHandler handler)
static readonly System.Net.NetEventSource Log
override Task< int > ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
void AbortWrite(long errorCode)
static string net_http_invalid_response_premature_eof
Definition SR.cs:94
static string net_http_response_headers_exceeded_length
Definition SR.cs:124
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
Definition SR.cs:7

References System.Net.Http.Http3RequestStream._connection, System.Net.Http.Http3RequestStream._headerBudgetRemaining, System.Net.Http.Http3RequestStream._headerDecoder, System.Net.Http.HttpConnectionSettings._maxResponseHeadersLength, System.Net.Http.Http3RequestStream._recvBuffer, System.Net.Http.Http3RequestStream._stream, System.Net.Quic.QuicStream.AbortWrite(), System.cancellationToken, System.Net.Http.QPack.QPackDecoder.Decode(), System.SR.Format(), System.L, System.Net.NetEventSource.Log, System.Math.Min(), System.SR.net_http_invalid_response_premature_eof, System.SR.net_http_response_headers_exceeded_length, System.Net.Http.Http3Connection.Pool, System.Net.Quic.QuicStream.ReadAsync(), System.Net.Http.QPack.QPackDecoder.Reset(), System.Net.Http.HttpConnectionPool.Settings, and System.Net.Http.Http3RequestStream.Trace().

Referenced by System.Net.Http.Http3RequestStream.DrainContentLength0Frames(), System.Net.Http.Http3RequestStream.ReadNextDataFrameAsync(), and System.Net.Http.Http3RequestStream.ReadResponseAsync().