Nheko-Reborn / nheko

Desktop client for Matrix using Qt and C++20.
https://nheko-reborn.github.io/
GNU General Public License v3.0
1.88k stars 199 forks source link

Cannot connect from UDP-blocking networks due to forced QUIC usage #1724

Open kleinesfilmroellchen opened 4 months ago

kleinesfilmroellchen commented 4 months ago

Describe the bug

Nheko forces the use of HTTP3/QUIC. Some networks, such as the University of Stuttgart‘s eduroam implementation, block all UDP traffic, which QUIC relies on. Therefore, Nheko cannot connect from these networks, since there is no fallback to HTTP2/TCP which would succeed; other clients can connect from these networks just fine.

To Reproduce

  1. Be in a network that blocks all UDP traffic (I’m confident even local firewall configuration can create a test setup for this relatively easily)
  2. Try to connect to a relatively up-to-date Synapse server that supports HTTP3
  3. See that Nheko cannot connect; a “no network connection” message is visible

What happened?

No connection to Matrix homeserver; see above.

Expected behavior

Nheko should be able to connect to a homeserver using either HTTP2 or HTTP3, using the former as a fallback for (honestly stupid) networks where UDP is blocked and QUIC connections fail.

Screenshots

No response

Version

0.11.3

Operating system

Linux

Installation method

Some repository (AUR, homebrew, distribution repository, PPA, etc)

Qt version

No response

C++ compiler

No response

Desktop Environment

KDE Plasma 6

Did you use profiles?

Relevant log output

[2024-05-06 15:11:55.835] [net] [warning] Failed to retrieve backup version
[2024-05-06 15:11:55.858] [crypto] [warning] failed to update one-time keys: (connection: Couldn't connect to server)
[2024-05-06 15:11:55.881] [net] [warning] failed to retrieve profile info for @filmroellchen:chat.upi.li
[2024-05-06 15:11:55.904] [net] [warning] failed to query device keys: M_UNRECOGNIZED,0
[2024-05-06 15:11:55.904] [net] [warning] failed to query device keys: (connection: Couldn't connect to server)

Backtrace

No response

deepbluev7 commented 4 months ago

Nheko doesn't force the usage of QUIC though. It only enables it, if a server claims to support it. However, that it doesn't fall back on connection issues is a problem, yes. But that seems to be a curl issue and it only happens on distros, that enable http/3 support in curl.

deepbluev7 commented 4 months ago

See https://github.com/curl/curl/issues/13162 for example.