113 Trace($
"{"QuicConnection
"} failed to close: {closeTask.Exception.InnerException}",
"CheckForShutdown");
117 connection.Dispose();
225 Trace(
"HTTP/3 server sent GOAWAY with increasing stream ID. Retried requests may have been double-processed by server.",
"OnServerGoAway");
294 return span.Slice(0, 4 + num).ToArray();
351 switch (
buffer.ActiveSpan[0])
390 buffer.EnsureAvailableSpace(8);
486 buffer.EnsureAvailableSpace(8);
510 buffer.EnsureAvailableSpace(16);
544 buffer.EnsureAvailableSpace(16);
548 if (
buffer.ActiveLength == 0)
563 if (
buffer.ActiveLength == 0)
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
static CultureInfo InvariantCulture
static readonly Stream Null
static byte Min(byte val1, byte val2)
int _maximumHeadersLength
override void Trace(string message, [CallerMemberName] string memberName=null)
int _haveServerQpackDecodeStream
void RemoveStream(QuicStream stream)
Task _connectionClosedTask
async Task ProcessServerStreamAsync(QuicStream stream)
Exception Abort(Exception abortException)
int _haveServerQpackEncodeStream
async Task ProcessServerControlStreamAsync(QuicStream stream, System.Net.ArrayBuffer buffer)
long _lastProcessedStreamId
void OnServerGoAway(long lastProcessedStreamId)
readonly HttpAuthority _origin
QuicStream _clientControl
readonly byte[] _altUsedEncodedHeader
async Task< HttpResponseMessage > SendAsync(HttpRequestMessage request, bool async, CancellationToken cancellationToken)
readonly HttpAuthority _authority
int _haveServerControlStream
void Trace(long streamId, string message, [CallerMemberName] string memberName=null)
async Task SendSettingsAsync()
byte[] AltUsedEncodedHeaderBytes
readonly HttpConnectionPool _pool
Exception _abortException
QuicConnection _connection
Http3Connection(HttpConnectionPool pool, HttpAuthority origin, HttpAuthority authority, QuicConnection connection)
static byte[] BuildSettingsFrame(HttpConnectionSettings settings)
readonly Dictionary< QuicStream, Http3RequestStream > _activeRequests
async Task AcceptStreamsAsync()
override long GetIdleTicks(long nowTicks)
static bool TryReadIntegerPair(ReadOnlySpan< byte > buffer, out long a, out long b, out int bytesRead)
void InvalidateHttp3Connection(Http3Connection connection)
HttpConnectionSettings Settings
int _maxResponseHeadersLength
byte[] Http3SettingsFrame
static byte[] EncodeLiteralHeaderFieldWithoutNameReferenceToArray(string name)
static bool TryRead(ReadOnlySpan< byte > buffer, out long value, out int bytesRead)
static int WriteInteger(Span< byte > buffer, long longToEncode)
static readonly System.Net.NetEventSource Log
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)
int GetRemoteAvailableBidirectionalStreamCount()
QuicStream OpenUnidirectionalStream()
ValueTask CloseAsync(long errorCode, CancellationToken cancellationToken=default(CancellationToken))
ValueTask WaitForAvailableBidirectionalStreamsAsync(CancellationToken cancellationToken=default(CancellationToken))
QuicStream OpenBidirectionalStream()
async ValueTask< QuicStream > AcceptStreamAsync(CancellationToken cancellationToken=default(CancellationToken))
override void Dispose(bool disposing)
override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
static string Format(string resourceFormat, object p1)
static string net_http_http3_connection_error
static string net_http_request_aborted
static int CompareExchange(ref int location1, int value, int comparand)
static int Exchange(ref int location1, int value)
static TaskScheduler Default
Task ContinueWith(Action< Task< TResult > > continuationAction)
static bool Read(ref bool location)
void AppendLiteral(string value)
void AppendFormatted(ReadOnlySpan< char > value)
static CancellationToken None