Uh oh!
There was an error while loading. Please reload this page.
RFC 7639 ALPN - #731
Conversation
42fd028 to
6140646Compareok2c
commented
Nov 29, 2025
@arturobernalg Could you please rebase this change-set? |
cc58cd1 to
208b565Comparearturobernalg
commented
Dec 20, 2025
@ok2c done. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
a178fe7 to
e343841CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
249924c to
bfb72b3CompareUh oh!
There was an error while loading. Please reload this page.
ok2c
commented
May 31, 2026
@arturobernalg This change can still make it into |
36079e1 to
46a533eComparearturobernalg
commented
Jun 19, 2026
@ok2c please do another pass |
Uh oh!
There was an error while loading. Please reload this page.
05a370f to
0af7b0fCompare
ok2c
left a comment
There was a problem hiding this comment.
@arturobernalg Much, much better! However, we need to figure out a better of way of passing the actual TLS policy to the interceptors. I would try to solve it by adding HttpVersionPolicy as an attribute to HttpClientContext
Encode protocol IDs with core's PercentCodec.HTTP_TOKEN (canonical RFC 7230 tchar form, uppercase hex) and decode strictly, rejecting malformed percent-encoding with ProtocolException. The advertised protocol set is derived from the target's HttpVersionPolicy. The connection manager resolves the effective TlsConfig and publishes the policy on HttpClientContext before the connection is established; ConnectExec and AsyncConnectExec read it back and, on secure CONNECT tunnels, advertise the same protocols the tunnel's TLS layer will offer, so the header cannot diverge from the protocol negotiated inside the tunnel. Interceptors fall back to NEGOTIATE when no policy is present on the context.
Add ConnectAlpnProvider and inject ALPN header in ConnectExec/AsyncConnectExec. Provide builder hooks for fixed list or provider-driven values.