From bcc4422e87541a742e5c0a1b0ed3b5f7d781fff4 Mon Sep 17 00:00:00 2001 From: Tindy X <49061470+tindy2013@users.noreply.github.com> Date: Fri, 3 Apr 2020 23:10:53 +0800 Subject: [PATCH] Fix SNI host missing in Surge configurations --- src/speedtestutil.cpp | 2 +- src/subexport.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/speedtestutil.cpp b/src/speedtestutil.cpp index 6157c34..becc716 100644 --- a/src/speedtestutil.cpp +++ b/src/speedtestutil.cpp @@ -1374,7 +1374,7 @@ bool explodeSurge(std::string surge, const std::string &custom_port, int local_p if(host.empty() && !isIPv4(server) && !isIPv6(server)) host = server; - node.proxyStr = trojanConstruct(remarks, server, port, password, host, false); + node.proxyStr = trojanConstruct(remarks, server, port, password, host, true); break; default: switch(hash_(remarks)) diff --git a/src/subexport.cpp b/src/subexport.cpp index b64a675..b50d9d8 100644 --- a/src/subexport.cpp +++ b/src/subexport.cpp @@ -1181,7 +1181,10 @@ std::string netchToSurge(std::vector &nodes, std::string &base_conf, s case SPEEDTEST_MESSAGE_FOUNDTROJAN: if(surge_ver < 4) continue; + host = GetMember(json, "Host"); proxy = "trojan, " + hostname + ", " + port + ", password=" + password; + if(host.size()) + proxy += ", sni=" + host; if(ext.skip_cert_verify) proxy += ", skip-cert-verify=1"; break;