From 2b6f99be31639592df91ce6a1d7d72b5818b4eb7 Mon Sep 17 00:00:00 2001 From: Webber Date: Sat, 17 Jan 2026 00:56:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(QuanX):=20=E6=96=B0=E5=A2=9EQuantumult?= =?UTF-8?q?=20X=E5=AF=B9vless=E5=8F=8Areality=E5=8D=8F=E8=AE=AE=E7=9A=84?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/generator/config/subexport.cpp | 71 +++++++++++++++++++++++++++++- src/parser/subparser.cpp | 4 +- 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/generator/config/subexport.cpp b/src/generator/config/subexport.cpp index eb2c77dde..36f6269a5 100644 --- a/src/generator/config/subexport.cpp +++ b/src/generator/config/subexport.cpp @@ -1637,7 +1637,7 @@ void proxyToQuanX(std::vector &nodes, INIReader &ini, std::vector &nodes, INIReader &ini, std::vector &nodes) singleproxy["path"] >>= path; break; } - vlessConstruct(node, group, ps, server, port, uuid, sni, alpn, type, net, mode, host, path, fingerprint, flow, xtls, public_key, short_id, client_fingerprint, udp, tfo, scv, underlying_proxy); + tls = safe_as(singleproxy["tls"]) == "true" ? "tls" : ""; + vlessConstruct(node, group, ps, server, port, uuid, sni, alpn, type, net, mode, host, path, fingerprint, flow, xtls, public_key, short_id, client_fingerprint, udp, tfo, scv, underlying_proxy); + node.TLSSecure = tls == "tls"; // Assign new parameters to node for VLESS node.IpVersion = ip_version; node.EchEnable = ech_enable; From 1a8cd6218f1ec8b26c32e6724da8fee45a8f8814 Mon Sep 17 00:00:00 2001 From: Webber Date: Sun, 18 Jan 2026 02:55:55 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(QuanX):=20=E5=AF=B9StdVLESS=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E6=96=B9=E5=BC=8F=EF=BC=8C=E5=A2=9E=E5=8A=A0TLSSecure?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=9A=84=E8=B5=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/parser/subparser.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/parser/subparser.cpp b/src/parser/subparser.cpp index 6a0fc03f4..b5fb4d40e 100644 --- a/src/parser/subparser.cpp +++ b/src/parser/subparser.cpp @@ -2126,7 +2126,7 @@ void explodeAnyTLS(std::string anytls, Proxy &node) { } void explodeStdVLESS(std::string vless, Proxy &node) { - std::string add, port, uuid, sni, alpn, net, type, mode, host, path, fingerprint, remarks, addition, flow, xtls, public_key, short_id; + std::string add, port, uuid, sni, alpn, net, type, mode, host, path, fingerprint, remarks, addition, flow, xtls, public_key, short_id, security, tls; tribool tfo, scv; std::string decoded, userinfo, hostinfo; string_array user_parts; @@ -2187,6 +2187,7 @@ void explodeStdVLESS(std::string vless, Proxy &node) { flow = getUrlArg(addition, "flow"); xtls = getUrlArg(addition, "xtls"); public_key = getUrlArg(addition, "pbk"); + security = getUrlArg(addition, "security"); short_id = getUrlArg(addition, "sid"); tfo = tribool(getUrlArg(addition, "tfo")); std::string insecure_val = getUrlArg(addition, "insecure"); @@ -2226,7 +2227,7 @@ void explodeStdVLESS(std::string vless, Proxy &node) { if (remarks.empty()) remarks = add + ":" + port; - + node.TLSSecure = security == "tls" || security == "reality"; vlessConstruct(node, VLESS_DEFAULT_GROUP, remarks, add, port, uuid, sni, alpn, type, net, mode, host, path, fingerprint, flow, xtls, public_key, short_id, "", tribool(), tfo, scv, ""); }