Skip to content

Commit

Permalink
Move a few allocations behind IsHttp3Supported checks (#100178)
Browse files Browse the repository at this point in the history
* Move a few allocations behind IsHttp3Supported checks

* Dedup the logic
  • Loading branch information
MihaZupan committed Mar 24, 2024
1 parent 4e0d5d4 commit 55492f2
Showing 1 changed file with 10 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -253,12 +253,6 @@ public HttpConnectionPool(HttpConnectionPoolManager poolManager, HttpConnectionK
_hostHeaderLineBytes = hostHeaderLine;

Debug.Assert(Encoding.ASCII.GetString(_hostHeaderLineBytes) == $"Host: {hostHeader}\r\n");

if (sslHostName == null)
{
_http2EncodedAuthorityHostHeader = HPackEncoder.EncodeLiteralHeaderFieldWithoutIndexingToAllocatedArray(H2StaticTable.Authority, hostHeader);
_http3EncodedAuthorityHostHeader = QPackEncoder.EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(H3StaticTable.Authority, hostHeader);
}
}

if (sslHostName != null)
Expand Down Expand Up @@ -286,9 +280,18 @@ public HttpConnectionPool(HttpConnectionPoolManager poolManager, HttpConnectionK
// by which AllowRenegotiation could be set back to true in that case.
// For now, if an HTTP/2 server erroneously issues a renegotiation, we'll
// allow it.
}
}

Debug.Assert(hostHeader != null);
if (hostHeader is not null)
{
if (_http2Enabled)
{
_http2EncodedAuthorityHostHeader = HPackEncoder.EncodeLiteralHeaderFieldWithoutIndexingToAllocatedArray(H2StaticTable.Authority, hostHeader);
}

if (IsHttp3Supported() && _http3Enabled)
{
_http3EncodedAuthorityHostHeader = QPackEncoder.EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(H3StaticTable.Authority, hostHeader);
}
}
Expand Down

0 comments on commit 55492f2

Please sign in to comment.