From c26b626c353ad4e4ea4e9f4856bb69aad536f209 Mon Sep 17 00:00:00 2001 From: evgeny Date: Sun, 25 Oct 2026 16:31:04 +0100 Subject: [PATCH] Handle comments consistently in desktop socket protocol settings --- src/transport_layer/auto_socket.c | 10 ++++++---- tools/chatgui/tests/test_gui_language.cpp | 4 ++++ tools/chatgui/transport/node_config.cpp | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/transport_layer/auto_socket.c b/src/transport_layer/auto_socket.c index de1085d6..8458c804 100644 --- a/src/transport_layer/auto_socket.c +++ b/src/transport_layer/auto_socket.c @@ -459,8 +459,9 @@ int auto_socket_add_interface(struct UTUN_INSTANCE* inst, uint32_t ifindex, while (s) { if (!s->is_tcp && s->netif_index == ifindex && s->local_addr.ss_family == AF_INET && !ifa->v4_udp) { ifa->v4_udp = s; break; } s = s->next; } } if (as->protocols & CFG_AUTO_SOCKET_TCP) { - struct stcp_server* tsrv = create_iface_tcp_socket(as, ifindex, ifname, AF_INET, v4_type, &ifa->v4_tcp_sock); - if (tsrv) { added++; ifa->v4_tcp = tsrv; } } + struct stcp_server* tsrv = create_iface_tcp_socket(as, ifindex, ifname, AF_INET, v4_type, &ifa->v4_tcp_sock); + if (tsrv) { added++; ifa->v4_tcp = tsrv; } + } } if (has_v6) { if ((as->protocols & CFG_AUTO_SOCKET_UDP) && create_iface_udp_socket(as, ifindex, ifname, AF_INET6, v6_type) == 0) { @@ -469,8 +470,9 @@ int auto_socket_add_interface(struct UTUN_INSTANCE* inst, uint32_t ifindex, while (s) { if (!s->is_tcp && s->netif_index == ifindex && s->local_addr.ss_family == AF_INET6 && !ifa->v6_udp) { ifa->v6_udp = s; break; } s = s->next; } } if (as->protocols & CFG_AUTO_SOCKET_TCP) { - struct stcp_server* tsrv = create_iface_tcp_socket(as, ifindex, ifname, AF_INET6, v6_type, &ifa->v6_tcp_sock); - if (tsrv) { added++; ifa->v6_tcp = tsrv; } } + struct stcp_server* tsrv = create_iface_tcp_socket(as, ifindex, ifname, AF_INET6, v6_type, &ifa->v6_tcp_sock); + if (tsrv) { added++; ifa->v6_tcp = tsrv; } + } } if (added > 0) { diff --git a/tools/chatgui/tests/test_gui_language.cpp b/tools/chatgui/tests/test_gui_language.cpp index 3c2e67a0..dbd543de 100644 --- a/tools/chatgui/tests/test_gui_language.cpp +++ b/tools/chatgui/tests/test_gui_language.cpp @@ -77,6 +77,10 @@ private slots: } QVERIFY(config_update_option(path, "global", "auto_sockets", "no")); page.loadFromConfig(path); QVERIFY(!protocols->isEnabled()); + QVERIFY(config_update_option(path, "global", "auto_socket_protocols", "TCP # comment")); + QVERIFY(config.load()); QVERIFY(!config.hasErrors()); + QCOMPARE(config.autoSocketProtocols(), QString("tcp")); + page.loadFromConfig(path); QCOMPARE(protocols->currentData().toString(), QString("tcp")); QVERIFY(config_update_option(path, "global", "auto_socket_protocols", "invalid")); QVERIFY(config.load()); QVERIFY(config.hasErrors()); QFile file(path); QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Truncate)); diff --git a/tools/chatgui/transport/node_config.cpp b/tools/chatgui/transport/node_config.cpp index 9b494830..44a921cb 100644 --- a/tools/chatgui/transport/node_config.cpp +++ b/tools/chatgui/transport/node_config.cpp @@ -314,7 +314,7 @@ bool NodeConfig::load() { else if (key == "my_private_key") m_privKey = val; else if (key == "auto_sockets") m_autoSockets = (val.compare("yes", Qt::CaseInsensitive) == 0 || val == "1"); else if (key == "auto_socket_protocols") { - const QString protocols = val.toLower(); + const QString protocols = val.section('#', 0, 0).section(';', 0, 0).trimmed().toLower(); if (protocols == "tcp" || protocols == "udp" || protocols == "tcp+udp") m_autoSocketProtocols = protocols; else { m_errors.append(QString("line %1: invalid auto_socket_protocols='%2'; expected tcp, udp or tcp+udp")