Skip to content

masque_server_backend fails to find client state when connection id changes #74

@veryniceguy12

Description

@veryniceguy12

I am running the masque_server and masque_client (following https://www.chromium.org/quic/playing-with-quic/), and changing the IP address on the masque_client to trigger a migration, which in turn results in failed subsequent connect-udp requests.

The issue I see is that backend_client_states_ uses a map that keys on the initial connection_id whenever a masque_server session is initiated. When the masque_client migrates to another address, this change causes a failure to find the client_state because of a changed connection id, resulting in a request failure. Shouldn't the key, i.e., the connection_id, for the backend_client_states_ be updated after a migration event?

I am running the masque_server with this cmd:

./out/Default/masque_server --certificate_file=net/tools/quic/certs/out/leaf_cert.pem  \
--key_file=net/tools/quic/certs/out/leaf_cert.pkcs8 --cache_dir=/tmp/quic-data/

and the client with this cmd:

./out/Default/masque_client [IPv6_address]:9661 https://cloudflare-quic.com https://youtube.com \
 https://www.facebook.com --disable_certificate_verification=true

This is the error I am running into:

[0720/043019.607921:ERROR:masque_server_backend.cc(88)] Could not find backend client for
{
  :method CONNECT
  :protocol connect-udp
  :scheme https
  :authority [IPv6_address]:9661
  :path /.well-known/masque/udp/www.facebook.com/443/
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions