masque_server_backend fails to find client state when connection id changes
- Dominant language
- C++
- Stars
- 897
- Forks
- 177
- PR merge metrics
- No merged PRs in 30d
Description
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/
}
```
Contributor guide
Assessment
This issue has not been assessed yet.