Skip to content

"Failed to set TOS for UDP Socket" for IPv6 #7088

@VVD

Description

@VVD

Description

Fails to set TOS bits:

<W>2025-12-29 23:37:57.715 1 => Server listening on [::]:64738
<W>2025-12-29 23:37:57.721 1 => Server: Failed to set TOS for UDP Socket

This prevents proper QoS from being set for IPv6.
Downstream problem report: https://bugs.freebsd.org/292034

Steps to reproduce

  1. Set in config host=:: or remove option host=.
  2. Run: service mumble-server start.

Mumble version

1.5.857

Mumble component

Server

OS

FreeBSD

Reproducible?

Yes

Additional information

Patch:

--- src/murmur/Server.cpp.orig  2025-10-11 18:24:04 UTC
+++ src/murmur/Server.cpp
@@ -181,6 +181,15 @@ Server::Server(int snum, QObject *p) : QThread(p) {
                        } else {
 #ifdef Q_OS_UNIX
                                int val = 0xe0;
+#ifdef __FreeBSD__
+                               if (addr.ss_family == AF_INET6) {
+                                       if (setsockopt(sock, IPPROTO_IPV6, IPV6_TCLASS, &val, sizeof(val))) {
+                                               val = 0x80;
+                                               if (setsockopt(sock, IPPROTO_IPV6, IPV6_TCLASS, &val, sizeof(val)))
+                                                       log(QString("Server: Failed to set IPV6_TCLASS for UDP Socket, errno = ").arg(errno));
+                                       }
+                               } else
+#endif
                                if (setsockopt(sock, IPPROTO_IP, IP_TOS, &val, sizeof(val))) {
                                        val = 0x80;
                                        if (setsockopt(sock, IPPROTO_IP, IP_TOS, &val, sizeof(val)))

Relevant log output

<X>2025-12-29 23:37:57.698 SSL: OpenSSL version is 'OpenSSL 3.0.16 11 Feb 2025'
<W>2025-12-29 23:37:57.698 Initializing settings from /usr/local/etc/mumble/mumble-server.ini (basepath /usr/local/etc/mumble)
<W>2025-12-29 23:37:57.699 Binding to address ::
<C>2025-12-29 23:37:57.701 MetaParams: Adding 1 intermediate certificates from certificate file.
<W>2025-12-29 23:37:57.702 MetaParams: TLS cipher preference is "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-SHA:AES128-SHA"
<W>2025-12-29 23:37:57.706 ServerDB: Opened SQLite database /var/db/mumble-server/mumble-server.sqlite
<W>2025-12-29 23:37:57.707 ServerDB: Using SQLite's default rollback journal.
<W>2025-12-29 23:37:57.707 Murmur 1.5.0 running on FreeBSD: FreeBSD 14.3-RELEASE-p2 [x64]: Booting servers
<W>2025-12-29 23:37:57.715 1 => Server listening on [::]:64738
<W>2025-12-29 23:37:57.721 1 => Server: Failed to set TOS for UDP Socket

Screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bsdbugA bug (error) in the softwareserver

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions