From 34e677f8d406bb8a428649c419a41426a018f1ee Mon Sep 17 00:00:00 2001 From: parhelia512 <0011d3@gmail.com> Date: Sun, 31 Aug 2025 01:11:06 +0800 Subject: [PATCH] fix #738 --- src/configs/sub/GroupUpdater.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/configs/sub/GroupUpdater.cpp b/src/configs/sub/GroupUpdater.cpp index e30e988..665f431 100644 --- a/src/configs/sub/GroupUpdater.cpp +++ b/src/configs/sub/GroupUpdater.cpp @@ -667,6 +667,20 @@ namespace Subscription { auto downMbps = Node2QString(proxy["down"]).split(" ")[0].toInt(); if (upMbps > 0) bean->uploadMbps = upMbps; if (downMbps > 0) bean->downloadMbps = downMbps; + + auto ports = Node2QString(proxy["ports"]); + if (!ports.isEmpty()) { + QStringList serverPorts; + ports.replace("/", ","); + for (const QString& port : ports.split(",", Qt::SkipEmptyParts)) { + if (port.isEmpty()) { + continue; + } + port.replace("-", ":"); + serverPorts.append(port); + } + bean->serverPorts = serverPorts; + } } else if (type == "hysteria2") { auto bean = ent->QUICBean(); @@ -679,6 +693,20 @@ namespace Subscription { bean->uploadMbps = Node2QString(proxy["up"]).split(" ")[0].toInt(); bean->downloadMbps = Node2QString(proxy["down"]).split(" ")[0].toInt(); + + auto ports = Node2QString(proxy["ports"]); + if (!ports.isEmpty()) { + QStringList serverPorts; + ports.replace("/", ","); + for (const QString& port : ports.split(",", Qt::SkipEmptyParts)) { + if (port.isEmpty()) { + continue; + } + port.replace("-", ":"); + serverPorts.append(port); + } + bean->serverPorts = serverPorts; + } } else if (type == "tuic") { auto bean = ent->QUICBean();