From ef01b4aa5edf5586a7508a86d2f4539b0e061a1d Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Wed, 23 Oct 2019 15:18:21 +0800 Subject: [PATCH] fix pac --- v2rayN/v2rayN/Base/HttpWebServerB.cs | 6 ++++ v2rayN/v2rayN/Forms/MainForm.cs | 31 +++++++------------ v2rayN/v2rayN/Handler/SpeedtestHandler.cs | 3 ++ v2rayN/v2rayN/Handler/StatisticsHandler.cs | 1 + .../HttpProxyHandler/HttpProxyHandle.cs | 13 ++++---- .../HttpProxyHandler/PACServerHandle.cs | 31 ++++++++++++------- v2rayN/v2rayN/Properties/AssemblyInfo.cs | 2 +- 7 files changed, 48 insertions(+), 39 deletions(-) diff --git a/v2rayN/v2rayN/Base/HttpWebServerB.cs b/v2rayN/v2rayN/Base/HttpWebServerB.cs index 70ac2759..73e596d1 100644 --- a/v2rayN/v2rayN/Base/HttpWebServerB.cs +++ b/v2rayN/v2rayN/Base/HttpWebServerB.cs @@ -39,8 +39,14 @@ namespace v2rayN.Base while (true) { + if (!listener.Pending()) + { + continue; + } + TcpClient socket = listener.AcceptTcpClient(); Thread thread = new Thread(new ParameterizedThreadStart(ProcessThread)); + thread.IsBackground = true; thread.Start(socket); Thread.Sleep(1); } diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index 5f31540f..76e27d3c 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -33,6 +33,13 @@ namespace v2rayN.Forms Application.ApplicationExit += (sender, args) => { Utils.ClearTempPath(); + + v2rayHandler.V2rayStop(); + HttpProxyHandle.CloseHttpAgent(config); + PACServerHandle.Stop(); + + ConfigHandler.SaveConfig(ref config); + statistics?.SaveToFile(); statistics?.Close(); }; } @@ -79,18 +86,9 @@ namespace v2rayN.Forms if (e.CloseReason == CloseReason.UserClosing) { e.Cancel = true; - - statistics?.SaveToFile(); - HideForm(); return; - } - if (e.CloseReason == CloseReason.ApplicationExitCall) - { - ConfigHandler.SaveConfig(ref config); - statistics?.SaveToFile(); - statistics?.Close(); - } + } } private void MainForm_Resize(object sender, EventArgs e) @@ -117,7 +115,7 @@ namespace v2rayN.Forms { case WM_QUERYENDSESSION: Utils.SaveLog("Windows shutdown UnsetProxy"); - //CloseV2ray(); + ConfigHandler.ToJsonFile(config); statistics?.SaveToFile(); ProxySetting.UnsetProxy(); @@ -1006,16 +1004,11 @@ namespace v2rayN.Forms } private void menuExit_Click(object sender, EventArgs e) - { - CloseV2ray(); + { this.Visible = false; - this.Close(); - - statistics?.Close(); - - //this.Dispose(); - //System.Environment.Exit(System.Environment.ExitCode); + this.Close(); + Application.Exit(); } diff --git a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs index fefabfe4..f5d82f50 100644 --- a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs +++ b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs @@ -37,16 +37,19 @@ namespace v2rayN.Handler if (actionType == "ping") { _workThread = new Thread(new ThreadStart(RunPing)); + _workThread.IsBackground = true; _workThread.Start(); } if (actionType == "tcping") { _workThread = new Thread(new ThreadStart(RunTcping)); + _workThread.IsBackground = true; _workThread.Start(); } else if (actionType == "realping") { _workThread = new Thread(new ThreadStart(RunRealPing)); + _workThread.IsBackground = true; _workThread.Start(); } else if (actionType == "speedtest") diff --git a/v2rayN/v2rayN/Handler/StatisticsHandler.cs b/v2rayN/v2rayN/Handler/StatisticsHandler.cs index 12a9154e..a61f634a 100644 --- a/v2rayN/v2rayN/Handler/StatisticsHandler.cs +++ b/v2rayN/v2rayN/Handler/StatisticsHandler.cs @@ -105,6 +105,7 @@ namespace v2rayN.Handler GrpcInit(); workThread_ = new Thread(new ThreadStart(Run)); + workThread_.IsBackground = true; workThread_.Start(); } diff --git a/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs b/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs index 71dd88de..4f1eca5f 100644 --- a/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs +++ b/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs @@ -30,33 +30,33 @@ namespace v2rayN.HttpProxyHandler } if (type == 1) { - PACServerHandle.Stop(); + //PACServerHandle.Stop(); SysProxyHandle.SetIEProxy(true, true, $"{Global.Loopback}:{port}", null); } else if (type == 2) { string pacUrl = GetPacUrl(); SysProxyHandle.SetIEProxy(true, false, null, pacUrl); - PACServerHandle.Stop(); + //PACServerHandle.Stop(); PACServerHandle.Init(config); } else if (type == 3) { - PACServerHandle.Stop(); + //PACServerHandle.Stop(); SysProxyHandle.SetIEProxy(false, false, null, null); } else if (type == 4) { string pacUrl = GetPacUrl(); SysProxyHandle.SetIEProxy(false, false, null, null); - PACServerHandle.Stop(); + //PACServerHandle.Stop(); PACServerHandle.Init(config); } } else { SysProxyHandle.SetIEProxy(false, false, null, null); - PACServerHandle.Stop(); + //PACServerHandle.Stop(); } } catch (Exception ex) @@ -104,8 +104,7 @@ namespace v2rayN.HttpProxyHandler Global.sysAgent = false; Global.socksPort = 0; - Global.httpPort = 0; - Global.pacPort = 0; + Global.httpPort = 0; } catch { diff --git a/v2rayN/v2rayN/HttpProxyHandler/PACServerHandle.cs b/v2rayN/v2rayN/HttpProxyHandler/PACServerHandle.cs index 0df8466b..d3902d7f 100644 --- a/v2rayN/v2rayN/HttpProxyHandler/PACServerHandle.cs +++ b/v2rayN/v2rayN/HttpProxyHandler/PACServerHandle.cs @@ -28,6 +28,8 @@ namespace v2rayN.HttpProxyHandler public static void Init(Config config) { + Global.pacPort = config.GetLocalPort("pac"); + if (InitServer("*")) { pacPort = Global.pacPort; @@ -122,18 +124,23 @@ namespace v2rayN.HttpProxyHandler public static void Stop() { - //try - //{ - // if (server != null) - // { - // server.Stop(); - // server = null; - // } - //} - //catch (Exception ex) - //{ - // Utils.SaveLog("Webserver Stop " + ex.Message); - //} + try + { + if (server != null) + { + server.Stop(); + server = null; + } + if (serverB != null) + { + serverB.Stop(); + serverB = null; + } + } + catch (Exception ex) + { + Utils.SaveLog("Webserver Stop " + ex.Message); + } //try //{ diff --git a/v2rayN/v2rayN/Properties/AssemblyInfo.cs b/v2rayN/v2rayN/Properties/AssemblyInfo.cs index 8b56fc9b..2ae7cde9 100644 --- a/v2rayN/v2rayN/Properties/AssemblyInfo.cs +++ b/v2rayN/v2rayN/Properties/AssemblyInfo.cs @@ -33,4 +33,4 @@ using System.Runtime.InteropServices; // 方法是按如下所示使用“*”: //[assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("2.46")] +[assembly: AssemblyFileVersion("2.47")]