From 4b157fc68c559db2a5ac3efaa1afd41ed4adc172 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Apr 2026 03:49:23 +0000 Subject: [PATCH 1/2] Initial plan From ff65a3fd8119e1f359c602dc974e3f4d60a71829 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Apr 2026 03:50:33 +0000 Subject: [PATCH 2/2] Add UDP support to AnyTLS protocol conversion Agent-Logs-Url: https://github.com/ScortYang/subconverter/sessions/513e3126-3ae9-4a24-8861-aef392544c49 Co-authored-by: ScortYang <20560183+ScortYang@users.noreply.github.com> --- src/parser/subparser.cpp | 10 ++++++---- src/parser/subparser.h | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/parser/subparser.cpp b/src/parser/subparser.cpp index 6ef0f7f74..52b0c7d01 100644 --- a/src/parser/subparser.cpp +++ b/src/parser/subparser.cpp @@ -311,11 +311,12 @@ void anytlsConstruct( const std::string &idle_session_check_interval, const std::string &idle_session_timeout, const std::string &min_idle_session, + tribool udp, tribool tfo, tribool scv, const std::string &underlying_proxy ) { - commonConstruct(node, ProxyType::AnyTLS, group, remarks, server, port, tribool(), tfo, scv, tribool(), underlying_proxy); + commonConstruct(node, ProxyType::AnyTLS, group, remarks, server, port, udp, tfo, scv, tribool(), underlying_proxy); node.Password = password; node.SNI = sni; if (!alpn.empty()) { @@ -1792,7 +1793,7 @@ void explodeClash(Node yamlnode, std::vector &nodes) else singleproxy["alpn"] >>= alpn; singleproxy["fingerprint"] >>= fingerprint; - anytlsConstruct(node, group, ps, server, port, password, sni, alpn, fingerprint, idle_session_check_interval, idle_session_timeout, min_idle_session, tfo, scv, underlying_proxy); + anytlsConstruct(node, group, ps, server, port, password, sni, alpn, fingerprint, idle_session_check_interval, idle_session_timeout, min_idle_session, udp, tfo, scv, underlying_proxy); // Assign new parameters to node for AnyTLS node.IpVersion = ip_version; @@ -2073,7 +2074,7 @@ void explodeTUIC(std::string tuic, Proxy &node) { void explodeStdAnyTLS(std::string anytls, Proxy &node) { std::string add, port, password, sni, alpn, fingerprint, remarks, addition,idle_session_check_interval,idle_session_timeout,min_idle_session; - tribool tfo, scv; + tribool udp, tfo, scv; anytls = anytls.substr(9); // 去除 anytls:// string_size pos; @@ -2106,13 +2107,14 @@ void explodeStdAnyTLS(std::string anytls, Proxy &node) { sni = getUrlArg(addition, "peer"); alpn = getUrlArg(addition, "alpn"); fingerprint = urlDecode(getUrlArg(addition, "hpkp")); + udp = tribool(getUrlArg(addition, "udp")); tfo = tribool(getUrlArg(addition, "tfo")); scv = tribool(getUrlArg(addition, "insecure")); if (remarks.empty()) remarks = add + ":" + port; - anytlsConstruct(node, "AnyTLS", remarks, add, port, password, sni, alpn, fingerprint, idle_session_check_interval, idle_session_timeout, min_idle_session,tfo, scv, ""); + anytlsConstruct(node, "AnyTLS", remarks, add, port, password, sni, alpn, fingerprint, idle_session_check_interval, idle_session_timeout, min_idle_session, udp, tfo, scv, ""); } void explodeAnyTLS(std::string anytls, Proxy &node) { diff --git a/src/parser/subparser.h b/src/parser/subparser.h index 6273a4b0c..155c3ee64 100644 --- a/src/parser/subparser.h +++ b/src/parser/subparser.h @@ -122,6 +122,7 @@ void anytlsConstruct( const std::string &idle_session_check_interval, const std::string &idle_session_timeout, const std::string &min_idle_session, + tribool udp, tribool tfo, tribool scv, const std::string &underlying_proxy = ""