Nheko-Reborn / nheko

Desktop client for Matrix using Qt and C++20.

Home Page:https://nheko-reborn.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

kleinesfilmroellchen opened this issue · comments

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?

  • Profiles used?

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

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.

See curl/curl#13162 for example.