This will make voxygen issue a SRV lookup when connecting to a host, allowing server owners to configure non-standard ports for servers and host servers using vanity domains easily. It additionally allows servers to be hosted on both QUIC and TCP at the same time, with the client connecting to the preferred protocol automatically, but gracefully falling back if a connection is not possible.
According to RUSTSEC-2023-0052 we need to upgrade rustls to 0.21
to get a fix for the issue which may or may not affect Veloren
since it's about client certificates but with the absence of a
PoC it seems like a good idea to upgrade anyway, just to be sure.
webpki has gone unmaintained (which rustls 0.20 depends on),
starting with rustls 0.21 it depends on rustls-webpki which
contains a fix for the issue. Since quinn also depends on
rustls 0.20 in 0.8 and 0.9 versions, we needed to upgrade it to
0.10 so that it depends on rustls 0.21 which we now use.
cannot update the following dependencies:
- vek: Sharps SIMD isnt upstream
- tracing-subscriber: MakeWriter was adjusted and i was to lazy to fiddle with lifetimes,
- refinery, rustsql: we have a custom refinery version which is incompatible with newer rustsql
- equi + egui_winit + egui_wgpu_backend: i tried it in this commit but it turned out that they dependo n wgpu which we cant update
- wgpu: cant update due new version doesnt support DX11
Got quinn updated which now require some dependencies to be explicit.
Server:
provide a certificate file and key file via the settings. When provided it will then listen on TCP and QUIC, if not provided it will be TCP only.
The certificate must be known by the client, so you might get problems with self-signed certificates.
```ron
quic_files: Some((
cert: "/home/user/veloren_cert.pem",
key: "/home/user/veloren_key.key",
)),
```
Client:
activate the voxygen settin `use_quic: true` to try to connect to the quic backend of a server.