Skip to content

QUIC Listener ConnectionOptionsCallback ALPN Narrowing Down Failure with Wrong Error Code #86701

Closed
@liveans

Description

@liveans

This is a tracking issue for msquic next release to activate Listener_AlpnNarrowingDown_Failure test inside of QuicListenerTests.

Description:
While we're narrowing down ALPN negotiation list with ConnectionOptionsCallback, Quic is renegotiating ALPN with the Client.

                ApplicationProtocols = new List<SslApplicationProtocol>()
                {
                    new SslApplicationProtocol("foo"),
                    new SslApplicationProtocol("bar"),
                    new SslApplicationProtocol("test"),
                },
                ConnectionOptionsCallback = (_, _, _) =>
                {
                    // Narrowing down alpn list to more specific.
                    var options = CreateQuicServerOptions();
                    options.ServerAuthenticationOptions.ApplicationProtocols = new()
                    {
                        new SslApplicationProtocol("bar"),
                        new SslApplicationProtocol("test"),
                    };
                    return ValueTask.FromResult(options);
                }

In that case, if Quic can't find any matching ALPN between the client and server, the connection is failing with QUIC_STATUS_INTERNAL_ERROR instead of QUIC_STATUS_ALPN_NEG_FAILURE.

This is coming from msquic and has already been fixed in both the main and release/2.2 branches. (microsoft/msquic#3647 and microsoft/msquic#3649)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions