diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs b/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs index 552661e68bed5c..e51669888352bf 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs @@ -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) @@ -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); } }