From 902f78b5634271505dd71da790d04827563c5c83 Mon Sep 17 00:00:00 2001 From: ChsBuffer <33744752+chsbuffer@users.noreply.github.com> Date: Thu, 29 Oct 2020 16:30:21 +0800 Subject: [PATCH] fix: SSDLL flag fix: let Trojan don't use AutoresolveHostname setting --- Netch/Servers/Shadowsocks/SSController.cs | 7 ++++--- Netch/Servers/Trojan/TrojanController.cs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Netch/Servers/Shadowsocks/SSController.cs b/Netch/Servers/Shadowsocks/SSController.cs index ccadd84d..b24379ad 100644 --- a/Netch/Servers/Shadowsocks/SSController.cs +++ b/Netch/Servers/Shadowsocks/SSController.cs @@ -16,13 +16,15 @@ namespace Netch.Servers.Shadowsocks public string LocalAddress { get; set; } private Mode _savedMode; - public bool DllFlag => Global.Settings.BootShadowsocksFromDLL && (_savedMode.Type == 0 || _savedMode.Type == 1 || _savedMode.Type == 2); + public bool DllFlag; public bool Start(in Server s, in Mode mode) { _savedMode = mode; Server = s; var server = (Shadowsocks) s; + DllFlag = Global.Settings.BootShadowsocksFromDLL && (_savedMode.Type == 0 || _savedMode.Type == 1 || _savedMode.Type == 2); + //从DLL启动Shaowsocks if (DllFlag) { @@ -76,14 +78,13 @@ namespace Netch.Servers.Shadowsocks public override void Stop() { - if (Instance == null) + if (DllFlag) ShadowsocksDLL.Stop(); else StopInstance(); _savedMode = null; } - private class ShadowsocksDLL { [DllImport("shadowsocks-windows-dynamic", CallingConvention = CallingConvention.Cdecl)] diff --git a/Netch/Servers/Trojan/TrojanController.cs b/Netch/Servers/Trojan/TrojanController.cs index 6a11656b..ac9c0e31 100644 --- a/Netch/Servers/Trojan/TrojanController.cs +++ b/Netch/Servers/Trojan/TrojanController.cs @@ -31,7 +31,7 @@ namespace Netch.Servers.Trojan { local_addr = this.LocalAddress(), local_port = this.Socks5LocalPort(), - remote_addr = server.AutoResolveHostname(), + remote_addr = server.Hostname, remote_port = server.Port, password = new List {