Handle comments consistently in desktop socket protocol settings

This commit is contained in:
evgeny committed 2026-10-25 16:35:54 +01:00
1 parent 7bcdccc4d6
commit c26b626c35
3 files changed
+11 -5

No files matched your search

+6 -4
View File
@@ -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) {
@@ -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));
+1 -1
View File
@@ -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")