From 3daa8f479c43863efedb925566ec2cd05bab4b08 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Fri, 20 Mar 2020 01:22:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=90=86=EF=BC=88=E5=A6=82=E5=8F=AF=E7=94=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2rayN/v2rayN/Forms/MainForm.cs | 47 +++++++++++++---------- v2rayN/v2rayN/Handler/SpeedtestHandler.cs | 2 +- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index 7a107128..ccf42ed5 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -9,7 +9,8 @@ using v2rayN.Mode; using v2rayN.Base; using v2rayN.Tool; using System.Diagnostics; -using System.Drawing; +using System.Drawing; +using System.Net; namespace v2rayN.Forms { @@ -1185,6 +1186,22 @@ namespace v2rayN.Forms #region CheckUpdate + private void askToDownload(DownloadHandle downloadHandle, string url) + { + if (UI.ShowYesNo(string.Format(UIRes.I18N("DownloadYesNo"), url)) == DialogResult.Yes) + { + if (httpProxyTest() > 0) + { + int httpPort = config.GetLocalPort(Global.InboundHttp); + WebProxy webProxy = new WebProxy(Global.Loopback, httpPort); + downloadHandle.DownloadFileAsync(url, webProxy, 60); + } + else + { + downloadHandle.DownloadFileAsync(url, null, 60); + } + } + } private void tsbCheckUpdateN_Click(object sender, EventArgs e) { //System.Diagnostics.Process.Start(Global.UpdateUrl); @@ -1201,15 +1218,7 @@ namespace v2rayN.Forms string url = args.Msg; this.Invoke((MethodInvoker)(delegate { - - if (UI.ShowYesNo(string.Format(UIRes.I18N("DownloadYesNo"), url)) == DialogResult.No) - { - return; - } - else - { - downloadHandle.DownloadFileAsync(url, null, -1); - } + askToDownload(downloadHandle, url); })); } else @@ -1267,15 +1276,7 @@ namespace v2rayN.Forms string url = args.Msg; this.Invoke((MethodInvoker)(delegate { - - if (UI.ShowYesNo(string.Format(UIRes.I18N("DownloadYesNo"), url)) == DialogResult.No) - { - return; - } - else - { - downloadHandle.DownloadFileAsync(url, null, -1); - } + askToDownload(downloadHandle, url); })); } else @@ -1519,9 +1520,13 @@ namespace v2rayN.Forms private void tsbTestMe_Click(object sender, EventArgs e) { - SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lvSelecteds, "", UpdateSpeedtestHandler); - string result = statistics.RunAvailabilityCheck() + "ms"; + string result = httpProxyTest() + "ms"; AppendText(false, string.Format(UIRes.I18N("TestMeOutput"), result)); } + private int httpProxyTest() + { + SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lvSelecteds, "", UpdateSpeedtestHandler); + return statistics.RunAvailabilityCheck(); + } } } diff --git a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs index bc7d64ff..5acad82f 100644 --- a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs +++ b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs @@ -156,7 +156,7 @@ namespace v2rayN.Handler { int httpPort = _config.GetLocalPort(Global.InboundHttp); - Task t = Task.Factory.StartNew(() => + Task t = Task.Run(() => { try {