From c1bb3335554abdf2ccb3e82b74e31d1813de27d1 Mon Sep 17 00:00:00 2001 From: zfcode <97576419@qq.com> Date: Thu, 27 Feb 2020 14:17:33 +0800 Subject: [PATCH 01/14] add tray menu:subscription for updates --- v2rayN/v2rayN/Forms/MainForm.Designer.cs | 21 +- v2rayN/v2rayN/Forms/MainForm.cs | 17 +- v2rayN/v2rayN/Forms/MainForm.resx | 261 ++++++++++------------ v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx | 23 +- 4 files changed, 166 insertions(+), 156 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.Designer.cs b/v2rayN/v2rayN/Forms/MainForm.Designer.cs index dd2ce2b2..953d3043 100644 --- a/v2rayN/v2rayN/Forms/MainForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/MainForm.Designer.cs @@ -74,6 +74,7 @@ this.menuAddServers2 = new System.Windows.Forms.ToolStripMenuItem(); this.menuScanScreen2 = new System.Windows.Forms.ToolStripMenuItem(); this.menuCopyPACUrl = new System.Windows.Forms.ToolStripMenuItem(); + this.update_subscription = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.menuExit = new System.Windows.Forms.ToolStripMenuItem(); this.bgwScan = new System.ComponentModel.BackgroundWorker(); @@ -107,6 +108,7 @@ this.tsbCheckUpdateN = new System.Windows.Forms.ToolStripMenuItem(); this.tsbCheckUpdateCore = new System.Windows.Forms.ToolStripMenuItem(); this.tsbCheckUpdatePACList = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator(); this.tsbCheckClearPACList = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); this.tsbHelp = new System.Windows.Forms.ToolStripDropDownButton(); @@ -117,7 +119,6 @@ this.tsbPromotion = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); this.tsbClose = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -385,6 +386,7 @@ this.menuAddServers2, this.menuScanScreen2, this.menuCopyPACUrl, + this.update_subscription, this.toolStripSeparator2, this.menuExit}); this.cmsMain.Name = "contextMenuStrip1"; @@ -456,6 +458,12 @@ resources.ApplyResources(this.menuCopyPACUrl, "menuCopyPACUrl"); this.menuCopyPACUrl.Click += new System.EventHandler(this.menuCopyPACUrl_Click); // + // update_subscription + // + this.update_subscription.Name = "update_subscription"; + resources.ApplyResources(this.update_subscription, "update_subscription"); + this.update_subscription.Click += new System.EventHandler(this.update_subscription_Click); + // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; @@ -684,6 +692,11 @@ resources.ApplyResources(this.tsbCheckUpdatePACList, "tsbCheckUpdatePACList"); this.tsbCheckUpdatePACList.Click += new System.EventHandler(this.tsbCheckUpdatePACList_Click); // + // toolStripSeparator13 + // + this.toolStripSeparator13.Name = "toolStripSeparator13"; + resources.ApplyResources(this.toolStripSeparator13, "toolStripSeparator13"); + // // tsbCheckClearPACList // this.tsbCheckClearPACList.Name = "tsbCheckClearPACList"; @@ -748,11 +761,6 @@ this.tsbClose.Name = "tsbClose"; this.tsbClose.Click += new System.EventHandler(this.tsbClose_Click); // - // toolStripSeparator13 - // - this.toolStripSeparator13.Name = "toolStripSeparator13"; - resources.ApplyResources(this.toolStripSeparator13, "toolStripSeparator13"); - // // MainForm // resources.ApplyResources(this, "$this"); @@ -877,6 +885,7 @@ private System.Windows.Forms.ToolStripMenuItem menuRealPingServer; private System.Windows.Forms.ToolStripMenuItem menuNotEnabledHttp; private System.Windows.Forms.ToolStripSeparator toolStripSeparator13; + private System.Windows.Forms.ToolStripMenuItem update_subscription; } } diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index 8ab48a1d..dd34baf9 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -835,6 +835,11 @@ namespace v2rayN.Forms return 0; } + private void update_subscription_Click(object sender, EventArgs e) + { + UpdateSubscriptionProcess(); + } + #endregion @@ -1376,6 +1381,14 @@ namespace v2rayN.Forms } private void tsbSubUpdate_Click(object sender, EventArgs e) + { + UpdateSubscriptionProcess(); + } + + /// + /// the subscription update process + /// + private void UpdateSubscriptionProcess() { AppendText(false, UIRes.I18N("MsgUpdateSubscriptionStart")); @@ -1439,7 +1452,6 @@ namespace v2rayN.Forms AppendText(false, $"{hashCode}{UIRes.I18N("MsgStartGettingSubscriptions")}"); } } - #endregion #region Language @@ -1458,8 +1470,9 @@ namespace v2rayN.Forms Utils.RegWriteValue(Global.MyRegPath, Global.MyRegKeyLanguage, value); } + #endregion - + } } diff --git a/v2rayN/v2rayN/Forms/MainForm.resx b/v2rayN/v2rayN/Forms/MainForm.resx index cde6dfff..8d729e47 100644 --- a/v2rayN/v2rayN/Forms/MainForm.resx +++ b/v2rayN/v2rayN/Forms/MainForm.resx @@ -422,27 +422,6 @@ NoControl - - 265, 142 - - - cmsMain - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - v2rayN - - - True - - - 264, 22 - - - Http proxy - 547, 22 @@ -473,6 +452,12 @@ Only open PAC, do not automatically configure PAC + + 264, 22 + + + Http proxy + 264, 22 @@ -497,6 +482,12 @@ Copy local PAC URL + + 264, 22 + + + update subscription + 261, 6 @@ -506,6 +497,21 @@ Exit + + 265, 186 + + + cmsMain + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + v2rayN + + + True + 498, 17 @@ -536,60 +542,6 @@ 2 - - 228, 18 - - - txtMsgBox - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 0 - - - ssMain - - - System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 1 - - - Bottom - - - 0, 417 - - - 952, 176 - - - 4 - - - Information - - - groupBox2 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 3 - Fill @@ -626,30 +578,6 @@ 228, 18 - - 3, 151 - - - 946, 22 - - - 7 - - - statusStrip1 - - - ssMain - - - System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 1 - 微软雅黑, 8pt @@ -725,6 +653,57 @@ 0, 17 + + 3, 151 + + + 946, 22 + + + 7 + + + statusStrip1 + + + ssMain + + + System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 1 + + + Bottom + + + 0, 417 + + + 952, 176 + + + 4 + + + Information + + + groupBox2 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + Top @@ -755,6 +734,18 @@ 6, 56 + + 197, 22 + + + Subscription settings + + + 197, 22 + + + Update subscription + Magenta @@ -856,6 +847,27 @@ 6, 56 + + 187, 22 + + + About + + + 184, 6 + + + 187, 22 + + + Language-[English] + + + 187, 22 + + + 语言-[中文简体] + Magenta @@ -923,39 +935,6 @@ 5 - - 197, 22 - - - Subscription settings - - - 197, 22 - - - Update subscription - - - 187, 22 - - - About - - - 184, 6 - - - 187, 22 - - - Language-[English] - - - 187, 22 - - - 语言-[中文简体] - True @@ -1208,6 +1187,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + update_subscription + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + toolStripSeparator2 @@ -1370,6 +1355,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + toolStripSeparator13 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + tsbCheckClearPACList @@ -1430,12 +1421,6 @@ System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - toolStripSeparator13 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - MainForm diff --git a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx index 1659d54e..6c1ae213 100644 --- a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx @@ -401,13 +401,13 @@ - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAE3SURBVFhH7ZaBDQIhDEVvBEdwBDfQDXQER3AD3cARdAPd - QDfSDbQvuSb1AicFjJrwkxcN0FIolOuamv5VE2E+gLaPayWchEcE+hhTXVPhIoQmDcFYbKpoJtwEdX4X - jgIrXfTwnzb6dBw22BaJVdjJmWQs1/SdBRtE0U5cBXW2oSFRO0HtSEeW2FZ1wsq9sjuRdTDVAXnNuWLY - 6JnAl0sYa/Q5q1dhq35ci+Bkq2HJvbZpxGeybAAuw4Fq+cnW1wPITgHFYxvBUw+qHEIL1yq1vDKhVlH3 - NQwF4JkcFRWiUAB7IVW2FFPO3YqlgPd+LJf02e8Fdi3rMdIAcLDuf9UpeT0IS0G/hvhPm305vSl7EQFY - B6zCvozvYGzRM8zEoeg5TPZwDaGvpHQni1yzSxbXPW9q+hF13ROHuJnQcjbhtQAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wgAADsIBFShKgAAAATdJREFUWEftloENAiEMRW8ER3AEN9ANdARHcAPdwBF0A91AN9INtC+5JvUCJwWM + mvCTFw3QUiiU65qa/lUTYT6Ato9rJZyERwT6GFNdU+EihCYNwVhsqmgm3AR1fheOAitd9PCfNvp0HDbY + FolV2MmZZCzX9J0FG0TRTlwFdbahIVE7Qe1IR5bYVnXCyr2yO5F1MNUBec25YtjomcCXSxhr9DmrV2Gr + flyL4GSrYcm9tmnEZ7JsAC7DgWr5ydbXA8hOAcVjG8FTD6ocQgvXKrW8MqFWUfc1DAXgmRwVFaJQAHsh + VbYUU87diqWA934sl/TZ7wV2Lesx0gBwsO5/1Sl5PQhLQb+G+E+bfTm9KXsRAVgHrMK+jO9gbNEzzMSh + 6DlM9nANoa+kdCeLXLNLFtc9b2r6EXXdE4e4mdByNuG1AAAAAElFTkSuQmCC @@ -463,12 +463,15 @@ - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAySURBVFhH7c6xDQAgCEVBRnVTHU2ZABuMxV3yOvJDAAA/ - GqfZVG6X8mg1dfUAAPBQxAZd0SJruVXHWwAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wgAADsIBFShKgAAAADJJREFUWEftzrENACAIRUFGdVMdTZkAG4zFXfI68kMAAD8ap9lUbpfyaDV19QAA + 8FDEBl3RImu5VcdbAAAAAElFTkSuQmCC 关闭 + + 更新订阅 + \ No newline at end of file From 6293ddacc6215ca8a04f2351adc0c03e1da0be2e Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Mon, 16 Mar 2020 09:22:30 +0800 Subject: [PATCH 02/14] fix --- v2rayN/v2rayN/Handler/DownloadHandle.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Handler/DownloadHandle.cs b/v2rayN/v2rayN/Handler/DownloadHandle.cs index bf99a25f..19630bf7 100644 --- a/v2rayN/v2rayN/Handler/DownloadHandle.cs +++ b/v2rayN/v2rayN/Handler/DownloadHandle.cs @@ -57,7 +57,7 @@ namespace v2rayN.Handler private readonly string coreLatestUrl = "https://github.com/v2ray/v2ray-core/releases/latest"; private const string coreUrl = "https://github.com/v2ray/v2ray-core/releases/download/{0}/v2ray-windows-{1}.zip"; - public async Task CheckUpdateAsync(string type) + public async void CheckUpdateAsync(string type) { Utils.SetSecurityProtocol(); WebRequestHandler webRequestHandler = new WebRequestHandler From af71eed96ee826020a516de289190bca19ab16ed Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Mon, 16 Mar 2020 09:35:30 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E7=AE=80=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2rayN/v2rayN/Tool/Utils.cs | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/v2rayN/v2rayN/Tool/Utils.cs b/v2rayN/v2rayN/Tool/Utils.cs index c92674bf..64fe2775 100644 --- a/v2rayN/v2rayN/Tool/Utils.cs +++ b/v2rayN/v2rayN/Tool/Utils.cs @@ -804,21 +804,14 @@ namespace v2rayN public static string UnGzip(byte[] buf) { - byte[] buffer = new byte[1024]; - int n; - using (MemoryStream sb = new MemoryStream()) + MemoryStream sb = new MemoryStream(); + using (GZipStream input = new GZipStream(new MemoryStream(buf), + CompressionMode.Decompress, + false)) { - using (GZipStream input = new GZipStream(new MemoryStream(buf), - CompressionMode.Decompress, - false)) - { - while ((n = input.Read(buffer, 0, buffer.Length)) > 0) - { - sb.Write(buffer, 0, n); - } - } - return Encoding.UTF8.GetString(sb.ToArray()); + input.CopyTo(sb); } + return Encoding.UTF8.GetString(sb.ToArray()); } #endregion From b1f5d5ad756c0536b21b712dd4844c835f244740 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Mon, 16 Mar 2020 09:46:00 +0800 Subject: [PATCH 04/14] cleanup --- v2rayN/v2rayN/Forms/AddServer3Form.zh-Hans.resx | 3 --- 1 file changed, 3 deletions(-) diff --git a/v2rayN/v2rayN/Forms/AddServer3Form.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServer3Form.zh-Hans.resx index 9cb34d6a..c9d6760a 100644 --- a/v2rayN/v2rayN/Forms/AddServer3Form.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServer3Form.zh-Hans.resx @@ -153,7 +153,4 @@ 从剪贴板导入URL - - 扫描屏幕上的二维码 - \ No newline at end of file From df427d80a1b65a37dad434f911d865cffbf42672 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Tue, 17 Mar 2020 01:04:36 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E5=90=AF=E7=94=A8=E9=A1=B9=E7=B2=97?= =?UTF-8?q?=E4=BD=93+=E8=93=9D=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2rayN/v2rayN/Forms/MainForm.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index 223bba24..70b89535 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -9,6 +9,7 @@ using v2rayN.Mode; using v2rayN.Base; using v2rayN.Tool; using System.Diagnostics; +using System.Drawing; namespace v2rayN.Forms { @@ -239,6 +240,12 @@ namespace v2rayN.Forms item.testResult }); } + if (config.index.Equals(k)) + { + //lvItem.Checked = true; + lvItem.ForeColor = Color.Blue; + lvItem.Font = new Font(lvItem.Font, FontStyle.Bold); + } if (lvItem != null) lvServers.Items.Add(lvItem); } From 5357f504d8d8620b362136cdaa37b243e1dc3dd7 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Tue, 17 Mar 2020 01:04:46 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E9=9A=94=E8=A1=8C=E7=9D=80=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2rayN/v2rayN/Forms/MainForm.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index 70b89535..d06630c2 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -240,6 +240,10 @@ namespace v2rayN.Forms item.testResult }); } + if (k % 2 == 1) // 隔行着色 + { + lvItem.BackColor = Color.WhiteSmoke; + } if (config.index.Equals(k)) { //lvItem.Checked = true; From 5b2a6b12af2b35edf5263c5eee92fd8e8d43f439 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Fri, 20 Mar 2020 01:22:26 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=90=E5=8A=9F=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2rayN/v2rayN/Forms/MainForm.cs | 4 ++-- v2rayN/v2rayUpgrade/MainForm.cs | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index d06630c2..b284409a 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -577,7 +577,7 @@ namespace v2rayN.Forms private void menuRemoveDuplicateServer_Click(object sender, EventArgs e) { - Utils.DedupServerList(config.vmess, out List servers, config.keepOlderDedupl); + Utils.DedupServerList(config.vmess, out List servers, config.keepOlderDedupl); int oldCount = config.vmess.Count; int newCount = servers.Count; if (servers != null) @@ -1226,7 +1226,7 @@ namespace v2rayN.Forms try { string fileName = Utils.GetPath(downloadHandle.DownloadFileName); - Process process = Process.Start("v2rayUpgrade.exe", fileName); + Process process = Process.Start("v2rayUpgrade.exe", "\"" + fileName + "\""); if (process.Id > 0) { menuExit_Click(null, null); diff --git a/v2rayN/v2rayUpgrade/MainForm.cs b/v2rayN/v2rayUpgrade/MainForm.cs index 41990f42..7b77ed61 100644 --- a/v2rayN/v2rayUpgrade/MainForm.cs +++ b/v2rayN/v2rayUpgrade/MainForm.cs @@ -41,8 +41,9 @@ namespace v2rayUpgrade } catch (Exception ex) { - showWarn("Failed to close v2rayN(关闭v2rayN失败)." + ex.StackTrace); - return; + // Access may be denied without admin right. The user may not be an administrator. + showWarn("Failed to close v2rayN(关闭v2rayN失败).\n" + + "Close it manually, or the upgrade may fail.(请手动关闭正在运行的v2rayN,否则可能升级失败。\n\n" + ex.StackTrace); } try From d2ab186e4471dd2409e0848ec02ebaa65731f9de Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Fri, 20 Mar 2020 06:03:06 +0800 Subject: [PATCH 08/14] Add TestMe button --- v2rayN/v2rayN/Forms/MainForm.Designer.cs | 12 +- v2rayN/v2rayN/Forms/MainForm.cs | 15 +- v2rayN/v2rayN/Forms/MainForm.resx | 703 +++++++++++++++++++++- v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx | 3 + v2rayN/v2rayN/Global.cs | 1 + v2rayN/v2rayN/Handler/SpeedtestHandler.cs | 31 + v2rayN/v2rayN/Resx/ResUI.Designer.cs | 9 + v2rayN/v2rayN/Resx/ResUI.resx | 9 +- v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx | 9 +- 9 files changed, 752 insertions(+), 40 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.Designer.cs b/v2rayN/v2rayN/Forms/MainForm.Designer.cs index 426672d0..cd98e09f 100644 --- a/v2rayN/v2rayN/Forms/MainForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/MainForm.Designer.cs @@ -103,6 +103,7 @@ this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); this.tsbOptionSetting = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.tsbTestMe = new System.Windows.Forms.ToolStripButton(); this.tsbReload = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); this.tsbCheckUpdate = new System.Windows.Forms.ToolStripDropDownButton(); @@ -606,6 +607,7 @@ this.toolStripSeparator8, this.tsbOptionSetting, this.toolStripSeparator5, + this.tsbTestMe, this.tsbReload, this.toolStripSeparator7, this.tsbCheckUpdate, @@ -660,6 +662,13 @@ this.toolStripSeparator5.Name = "toolStripSeparator5"; resources.ApplyResources(this.toolStripSeparator5, "toolStripSeparator5"); // + // tsbTestMe + // + this.tsbTestMe.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.tsbTestMe.Name = "tsbTestMe"; + resources.ApplyResources(this.tsbTestMe, "tsbTestMe"); + this.tsbTestMe.Click += new System.EventHandler(this.tsbTestMe_Click); + // // tsbReload // resources.ApplyResources(this.tsbReload, "tsbReload"); @@ -811,7 +820,7 @@ } - #endregion +#endregion private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.GroupBox groupBox2; @@ -902,6 +911,7 @@ private System.Windows.Forms.ToolStripMenuItem menuNotEnabledHttp; private System.Windows.Forms.ToolStripSeparator toolStripSeparator13; private System.Windows.Forms.ToolStripMenuItem tsbV2rayWebsite; + private System.Windows.Forms.ToolStripButton tsbTestMe; private System.Windows.Forms.ToolStripMenuItem menuKeepNothing; private System.Windows.Forms.ToolStripMenuItem menuKeepPACNothing; } diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index b284409a..7a107128 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -9,7 +9,7 @@ using v2rayN.Mode; using v2rayN.Base; using v2rayN.Tool; using System.Diagnostics; -using System.Drawing; +using System.Drawing; namespace v2rayN.Forms { @@ -577,7 +577,7 @@ namespace v2rayN.Forms private void menuRemoveDuplicateServer_Click(object sender, EventArgs e) { - Utils.DedupServerList(config.vmess, out List servers, config.keepOlderDedupl); + Utils.DedupServerList(config.vmess, out List servers, config.keepOlderDedupl); int oldCount = config.vmess.Count; int newCount = servers.Count; if (servers != null) @@ -1225,8 +1225,8 @@ namespace v2rayN.Forms try { - string fileName = Utils.GetPath(downloadHandle.DownloadFileName); - Process process = Process.Start("v2rayUpgrade.exe", "\"" + fileName + "\""); + string fileName = Utils.GetPath(downloadHandle.DownloadFileName); + Process process = Process.Start("v2rayUpgrade.exe", "\"" + fileName + "\""); if (process.Id > 0) { menuExit_Click(null, null); @@ -1516,5 +1516,12 @@ namespace v2rayN.Forms { Process.Start(Global.v2rayWebsiteUrl); } + + private void tsbTestMe_Click(object sender, EventArgs e) + { + SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lvSelecteds, "", UpdateSpeedtestHandler); + string result = statistics.RunAvailabilityCheck() + "ms"; + AppendText(false, string.Format(UIRes.I18N("TestMeOutput"), result)); + } } } diff --git a/v2rayN/v2rayN/Forms/MainForm.resx b/v2rayN/v2rayN/Forms/MainForm.resx index d221a5c6..2020a2ae 100644 --- a/v2rayN/v2rayN/Forms/MainForm.resx +++ b/v2rayN/v2rayN/Forms/MainForm.resx @@ -119,42 +119,75 @@ + + 327, 17 + + + 17, 17 + + + 137, 17 + + + 498, 17 + + + 228, 18 + + + 409, 17 + + + True + + + 65 + 6, 12 952, 593 - - True - 4, 4, 4, 4 + + MainForm + v2rayN - - 65 + + v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - - 498, 17 + + bgwScan + + + System.ComponentModel.BackgroundWorker, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + cmsLv 356, 534 - - 327, 17 + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 NoControl - - 265, 164 + + cmsMain - - 137, 17 + + 265, 142 + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Fill @@ -162,6 +195,12 @@ 0, 66 + + groupBox1 + + + $this + 952, 351 @@ -171,12 +210,24 @@ Servers list + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 2 + Bottom 0, 417 + + groupBox2 + + + $this + 952, 176 @@ -186,6 +237,12 @@ Informations + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 3 + Fill @@ -209,233 +266,464 @@ 0, 0 + + lvServers + + + splitContainer1.Panel1 + 686, 331 1 + + v2rayN.Base.ListViewFlickerFree, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + + 0 + + + menuAddCustomServer + 355, 22 Add a custom configuration server + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuAddServers + 355, 22 Import bulk URL from clipboard (Ctrl+V) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuAddServers2 + 264, 22 Import bulk URL from clipboard + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuAddShadowsocksServer + 355, 22 Add [Shadowsocks] server + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuAddSocksServer + 355, 22 Add [Socks] server + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuAddVmessServer + 355, 22 Add [VMess] server + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuCopyPACUrl + 264, 22 Copy local PAC URL + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuCopyServer + 355, 22 Clone selected server + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuExit + 264, 22 Exit + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuExport2ClientConfig + 355, 22 Export selected server for client configuration + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuExport2ServerConfig + 355, 22 Export selected server for server configuration + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuExport2ShareUrl + 355, 22 Export share URLs to clipboard (Ctrl+C) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuExport2SubContent + 355, 22 Export subscription (base64) share to clipboard + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuGlobal + 411, 22 Open Http proxy and set the system proxy (global mode) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuGlobalPAC + 411, 22 Open PAC and set the system proxy (PAC mode) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuKeep + 411, 22 Only open Http proxy and clear the proxy settings + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuKeepNothing + 411, 22 Only open Http proxy and do nothing + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuKeepPAC + 411, 22 Only open PAC and clear the proxy settings + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuKeepPACNothing + 411, 22 Only open PAC and do nothing + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuMoveBottom + 355, 22 Move to bottom (B) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuMoveDown + 355, 22 Down (D) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuMoveTop + 355, 22 Move to top (T) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuMoveUp + 355, 22 Up (U) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuNotEnabledHttp + 411, 22 Not Enabled Http Proxy + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuPingServer + 355, 22 Test servers ping (Ctrl+P) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuRealPingServer + 355, 22 Test servers real delay (Ctrl+R) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuRemoveDuplicateServer + 355, 22 Remove duplicate servers + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuRemoveServer + 355, 22 Remove selected servers (Delete) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuScanScreen + 355, 22 Scan QR code on the screen (Ctrl+S) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuScanScreen2 + 264, 22 Scan QR code on the screen + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuSelectAll + 355, 22 Select All (Ctrl+A) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuServers + 264, 22 Server + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuSetDefaultServer + 355, 22 Set as active server (Enter) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuSpeedServer + 355, 22 Test servers download speed (Ctrl+T) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuSysAgentMode + 264, 22 Http proxy + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuTcpingServer + 355, 22 Test servers with tcping (Ctrl+O) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + notifyMain + v2rayN - - 17, 17 + + System.Windows.Forms.NotifyIcon, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 True @@ -446,33 +734,87 @@ 0, 56 + + panel1 + + + $this + 952, 10 5 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 4 + Fill 0, 0 + + qrCodeControl + + + splitContainer1.Panel2 + 256, 331 0 + + v2rayN.Forms.QRCodeControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + + 0 + Fill 3, 17 + + splitContainer1 + + + splitContainer1.Panel1 + + + splitContainer1 + + + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + splitContainer1.Panel2 + + + splitContainer1 + + + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + 100 + + groupBox1 + 946, 331 @@ -482,9 +824,21 @@ 2 + + System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + 3, 151 + + ssMain + + + groupBox2 + 946, 22 @@ -494,60 +848,114 @@ statusStrip1 - - 228, 18 + + System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 微软雅黑, 8pt + + toolSslBlank1 + 195, 17 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 微软雅黑, 8pt + + toolSslBlank2 + 195, 17 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 微软雅黑, 8pt + + toolSslBlank3 + 195, 17 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolSslBlank4 + 0, 17 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolSslHttpPort + 0, 17 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 微软雅黑, 8pt + + toolSslHttpPortLab + 39, 17 HTTP: + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolSslPacPort + 0, 17 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 微软雅黑, 8pt + + toolSslPacPortLab + 33, 17 PAC: + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + False 微软雅黑, 8pt + + toolSslServerSpeed + No @@ -560,72 +968,180 @@ MiddleRight + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolSslSocksPort + 0, 17 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 微软雅黑, 8pt + + toolSslSocksPortLab + 52, 17 SOCKS5: + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator1 + 352, 6 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator10 + 6, 56 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator11 + 6, 56 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator12 + 184, 6 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator13 + 390, 6 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator2 + 261, 6 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator3 + 352, 6 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator4 + 6, 56 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator5 + 6, 56 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator6 + 352, 6 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator7 + 6, 56 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator8 + 6, 56 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator9 + 352, 6 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbAbout + 187, 22 v2rayN Project + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbCheckClearPACList + 393, 22 Simplify PAC (need to set Core route) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Magenta + + tsbCheckUpdate + 128, 53 @@ -635,34 +1151,58 @@ ImageAboveText + + System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbCheckUpdateCore + 393, 22 Update v2rayCore + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbCheckUpdateN + 393, 22 v2rayN (this software) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbCheckUpdatePACList + 393, 22 Check for updated PAC (need the HTTP proxy are ON) + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAADJJREFUWEftzrENACAIRUFGdVMdTZkAG4zFXfI68kMAAD8ap9lUbpfyaDV19QAA - 8FDEBl3RImu5VcdbAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAySURBVFhH7c6xDQAgCEVBRnVTHU2ZABuMxV3yOvJDAAA/ + GqfZVG6X8mg1dfUAAPBQxAZd0SJruVXHWwAAAABJRU5ErkJggg== Magenta + + tsbClose + 52, 53 @@ -672,9 +1212,15 @@ ImageAboveText + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Magenta + + tsbHelp + 48, 53 @@ -684,21 +1230,39 @@ ImageAboveText + + System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbLanguageDef + 187, 22 Language-[English] + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbLanguageZhHans + 187, 22 语言-[中文简体] + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Magenta + + tsbOptionSetting + 58, 53 @@ -708,9 +1272,15 @@ ImageAboveText + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Magenta + + tsbPromotion + 89, 53 @@ -720,15 +1290,18 @@ ImageAboveText + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAATdJREFUWEftloENAiEMRW8ER3AEN9ANdARHcAPdwBF0A91AN9INtC+5JvUCJwWM - mvCTFw3QUiiU65qa/lUTYT6Ato9rJZyERwT6GFNdU+EihCYNwVhsqmgm3AR1fheOAitd9PCfNvp0HDbY - FolV2MmZZCzX9J0FG0TRTlwFdbahIVE7Qe1IR5bYVnXCyr2yO5F1MNUBec25YtjomcCXSxhr9DmrV2Gr - flyL4GSrYcm9tmnEZ7JsAC7DgWr5ydbXA8hOAcVjG8FTD6ocQgvXKrW8MqFWUfc1DAXgmRwVFaJQAHsh - VbYUU87diqWA934sl/TZ7wV2Lesx0gBwsO5/1Sl5PQhLQb+G+E+bfTm9KXsRAVgHrMK+jO9gbNEzzMSh - 6DlM9nANoa+kdCeLXLNLFtc9b2r6EXXdE4e4mdByNuG1AAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVFhH7ZaBDQIhDEVvBEdwBDfQDXQER3AD3cARdAPd + QDfSDbQvuSb1AicFjJrwkxcN0FIolOuamv5VE2E+gLaPayWchEcE+hhTXVPhIoQmDcFYbKpoJtwEdX4X + jgIrXfTwnzb6dBw22BaJVdjJmWQs1/SdBRtE0U5cBXW2oSFRO0HtSEeW2FZ1wsq9sjuRdTDVAXnNuWLY + 6JnAl0sYa/Q5q1dhq35ci+Bkq2HJvbZpxGeybAAuw4Fq+cnW1wPITgHFYxvBUw+qHEIL1yq1vDKhVlH3 + NQwF4JkcFRWiUAB7IVW2FFPO3YqlgPd+LJf02e8Fdi3rMdIAcLDuf9UpeT0IS0G/hvhPm305vSl7EQFY + B6zCvozvYGzRM8zEoeg5TPZwDaGvpHQni1yzSxbXPW9q+hF13ROHuJnQcjbhtQAAAABJRU5ErkJggg== @@ -737,6 +1310,9 @@ Magenta + + tsbReload + 98, 53 @@ -746,9 +1322,15 @@ ImageAboveText + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Magenta + + tsbServer + 64, 53 @@ -758,9 +1340,15 @@ ImageAboveText + + System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Magenta + + tsbSub + 99, 53 @@ -770,35 +1358,80 @@ ImageAboveText + + System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbSubSetting + 125, 22 Settings + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbSubUpdate + 125, 22 Updates + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbTestMe + + + 74, 53 + + + Test status + + + BottomCenter + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbV2rayWebsite + 187, 22 V2Ray Website + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 0, 0 + + tsMain + + + $this + 952, 56 6 - - 409, 17 + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 5 Fill @@ -812,6 +1445,12 @@ True + + txtMsgBox + + + groupBox2 + Vertical @@ -821,4 +1460,10 @@ 2 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx index 3b7d84b5..11b6fc80 100644 --- a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx @@ -489,6 +489,9 @@ 更新订阅 + + 测试状态 + V2Ray 官网 diff --git a/v2rayN/v2rayN/Global.cs b/v2rayN/v2rayN/Global.cs index 3f1cd7a7..bdc5b12b 100644 --- a/v2rayN/v2rayN/Global.cs +++ b/v2rayN/v2rayN/Global.cs @@ -16,6 +16,7 @@ namespace v2rayN /// public const string SpeedTestUrl = @"http://speedtest-sgp1.digitalocean.com/10mb.test"; public const string SpeedPingTestUrl = @"https://www.google.com/generate_204"; + public const string AvailabilityTestUrl = @"https://www.google.com/generate_204"; /// /// CustomRoutingListUrl diff --git a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs index 88dedf27..bc7d64ff 100644 --- a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs +++ b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs @@ -150,6 +150,37 @@ namespace v2rayN.Handler } } + public int RunAvailabilityCheck() // alias: isLive + { + try + { + int httpPort = _config.GetLocalPort(Global.InboundHttp); + + Task t = Task.Factory.StartNew(() => + { + try + { + WebProxy webProxy = new WebProxy(Global.Loopback, httpPort); + int responseTime = -1; + string status = GetRealPingTime(Global.AvailabilityTestUrl, webProxy, out responseTime); + bool noError = Utils.IsNullOrEmpty(status); + return noError ? responseTime : -1; + } + catch (Exception ex) + { + Utils.SaveLog(ex.Message, ex); + return -1; + } + }); + return t.Result; + } + catch (Exception ex) + { + Utils.SaveLog(ex.Message, ex); + return -1; + } + } + private void RunSpeedTest() { int pid = -1; diff --git a/v2rayN/v2rayN/Resx/ResUI.Designer.cs b/v2rayN/v2rayN/Resx/ResUI.Designer.cs index 47a1fdd8..b176221a 100644 --- a/v2rayN/v2rayN/Resx/ResUI.Designer.cs +++ b/v2rayN/v2rayN/Resx/ResUI.Designer.cs @@ -780,5 +780,14 @@ namespace v2rayN.Resx { return ResourceManager.GetString("SuccessfullyImportedServerViaScan", resourceCulture); } } + + /// + /// 查找类似 The ping of current service: {0} 的本地化字符串。 + /// + internal static string TestMeOutput { + get { + return ResourceManager.GetString("TestMeOutput", resourceCulture); + } + } } } diff --git a/v2rayN/v2rayN/Resx/ResUI.resx b/v2rayN/v2rayN/Resx/ResUI.resx index bfa63937..87150298 100644 --- a/v2rayN/v2rayN/Resx/ResUI.resx +++ b/v2rayN/v2rayN/Resx/ResUI.resx @@ -264,12 +264,12 @@ Start getting subscriptions - - Start updating PAC... - Start updating {0}... + + Start updating PAC... + Subscription content decoding failed (non-BASE64 code) @@ -358,4 +358,7 @@ Scan import URL successfully + + The ping of current service: {0} + \ No newline at end of file diff --git a/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx b/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx index 1adba146..6e80e758 100644 --- a/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx +++ b/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx @@ -264,12 +264,12 @@ 开始获取订阅内容 - - 开始更新 PAC... - 开始更新 {0}... + + 开始更新 PAC... + 订阅内容解码失败(非BASE64码) @@ -358,4 +358,7 @@ 扫描导入URL成功 + + 当前服务的访问延迟: {0} + \ No newline at end of file From 3daa8f479c43863efedb925566ec2cd05bab4b08 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Fri, 20 Mar 2020 01:22:07 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E4=BB=A3=E7=90=86=EF=BC=88=E5=A6=82=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=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 { From 2d2e4deb824bcdb347ccf2a058b4ea923e7341f5 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Fri, 20 Mar 2020 06:34:00 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E6=B8=85=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 跳过证书验证存风险 强制HTTP1.0已知存有兼容性问题 --- v2rayN/v2rayN/Base/WebClientEx.cs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/v2rayN/v2rayN/Base/WebClientEx.cs b/v2rayN/v2rayN/Base/WebClientEx.cs index 4cdfdf03..096826cc 100644 --- a/v2rayN/v2rayN/Base/WebClientEx.cs +++ b/v2rayN/v2rayN/Base/WebClientEx.cs @@ -17,17 +17,7 @@ namespace v2rayN.Base protected override WebRequest GetWebRequest(Uri address) { HttpWebRequest request; - if (address.Scheme == "https") - { - ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => { return true; }; - request = (HttpWebRequest)base.GetWebRequest(address); - //request.ProtocolVersion = HttpVersion.Version10; - } - else - { - request = (HttpWebRequest)base.GetWebRequest(address); - } - + request = (HttpWebRequest)base.GetWebRequest(address); request.Timeout = Timeout; request.ReadWriteTimeout = Timeout; //request.AllowAutoRedirect = false; From a4a0b29250c21ddce766d06bbc8e2d6094c9334e Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Fri, 20 Mar 2020 07:17:54 +0800 Subject: [PATCH 11/14] refine merge --- v2rayN/v2rayN/Forms/MainForm.Designer.cs | 14 ++++++------ v2rayN/v2rayN/Forms/MainForm.cs | 2 +- v2rayN/v2rayN/Forms/MainForm.resx | 26 +++++++++++------------ v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx | 6 +++--- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.Designer.cs b/v2rayN/v2rayN/Forms/MainForm.Designer.cs index 2619805d..b3c75b8f 100644 --- a/v2rayN/v2rayN/Forms/MainForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/MainForm.Designer.cs @@ -76,7 +76,7 @@ this.menuAddServers2 = new System.Windows.Forms.ToolStripMenuItem(); this.menuScanScreen2 = new System.Windows.Forms.ToolStripMenuItem(); this.menuCopyPACUrl = new System.Windows.Forms.ToolStripMenuItem(); - this.update_subscription = new System.Windows.Forms.ToolStripMenuItem(); + this.menuUpdateSubscriptions = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.menuExit = new System.Windows.Forms.ToolStripMenuItem(); this.bgwScan = new System.ComponentModel.BackgroundWorker(); @@ -390,7 +390,7 @@ this.menuAddServers2, this.menuScanScreen2, this.menuCopyPACUrl, - this.update_subscription, + this.menuUpdateSubscriptions, this.toolStripSeparator2, this.menuExit}); this.cmsMain.Name = "contextMenuStrip1"; @@ -476,11 +476,11 @@ resources.ApplyResources(this.menuCopyPACUrl, "menuCopyPACUrl"); this.menuCopyPACUrl.Click += new System.EventHandler(this.menuCopyPACUrl_Click); // - // update_subscription + // menuUpdateSubscriptions // - this.update_subscription.Name = "update_subscription"; - resources.ApplyResources(this.update_subscription, "update_subscription"); - this.update_subscription.Click += new System.EventHandler(this.update_subscription_Click); + this.menuUpdateSubscriptions.Name = "menuUpdateSubscriptions"; + resources.ApplyResources(this.menuUpdateSubscriptions, "menuUpdateSubscriptions"); + this.menuUpdateSubscriptions.Click += new System.EventHandler(this.menuUpdateSubscriptions_Click); // // toolStripSeparator2 // @@ -918,7 +918,7 @@ private System.Windows.Forms.ToolStripMenuItem menuRealPingServer; private System.Windows.Forms.ToolStripMenuItem menuNotEnabledHttp; private System.Windows.Forms.ToolStripSeparator toolStripSeparator13; - private System.Windows.Forms.ToolStripMenuItem update_subscription; + private System.Windows.Forms.ToolStripMenuItem menuUpdateSubscriptions; private System.Windows.Forms.ToolStripMenuItem tsbV2rayWebsite; private System.Windows.Forms.ToolStripButton tsbTestMe; private System.Windows.Forms.ToolStripMenuItem menuKeepNothing; diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index fdf3d208..13eb5859 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -883,7 +883,7 @@ namespace v2rayN.Forms return counter; } - private void update_subscription_Click(object sender, EventArgs e) + private void menuUpdateSubscriptions_Click(object sender, EventArgs e) { UpdateSubscriptionProcess(); } diff --git a/v2rayN/v2rayN/Forms/MainForm.resx b/v2rayN/v2rayN/Forms/MainForm.resx index 9e67e0cb..0bbd1220 100644 --- a/v2rayN/v2rayN/Forms/MainForm.resx +++ b/v2rayN/v2rayN/Forms/MainForm.resx @@ -184,7 +184,7 @@ cmsMain - 265, 186 + 265, 164 System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -716,6 +716,18 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + menuUpdateSubscriptions + + + 264, 22 + + + Update subscriptions + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + notifyMain @@ -1466,16 +1478,4 @@ 0 - - update_subscription - - - 264, 22 - - - update subscription - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx index ef8e9ed5..85743a05 100644 --- a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx @@ -363,6 +363,9 @@ 测试服务器延迟Tcping(多选) (Ctrl+O) + + 更新订阅 + 网速显示未启用 @@ -495,7 +498,4 @@ V2Ray 官网 - - 更新订阅 - \ No newline at end of file From be9bbcc2c720954777052c8f8c42a01a0b2ee85b Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Fri, 20 Mar 2020 07:24:04 +0800 Subject: [PATCH 12/14] add check --- v2rayN/v2rayN/Forms/MainForm.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index 13eb5859..d5fb21e5 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -652,7 +652,7 @@ namespace v2rayN.Forms } private void Speedtest(string actionType) { - GetLvSelectedIndex(); + if (GetLvSelectedIndex() < 0) return; ClearTestResult(); SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lvSelecteds, actionType, UpdateSpeedtestHandler); } From a6fcf53b104807145213672995f756b8d7089c36 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Thu, 19 Mar 2020 00:56:25 +0800 Subject: [PATCH 13/14] 'int' convert to 'enum ListenerType' --- v2rayN/v2rayN/Forms/MainForm.cs | 28 ++++++++------- v2rayN/v2rayN/Forms/OptionSettingForm.cs | 6 ++-- v2rayN/v2rayN/Handler/MainFormHandler.cs | 2 +- .../HttpProxyHandler/HttpProxyHandle.cs | 35 +++++++++++++------ v2rayN/v2rayN/Mode/Config.cs | 6 ++-- 5 files changed, 48 insertions(+), 29 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index d5fb21e5..a283acb9 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -334,10 +334,12 @@ namespace v2rayN.Forms toolSslSocksPort.Text = $"{Global.Loopback}:{config.inbound[0].localPort}"; - if (config.listenerType != 0) + if (config.listenerType != (int)ListenerType.noHttpProxy) { toolSslHttpPort.Text = $"{Global.Loopback}:{Global.httpPort}"; - if (config.listenerType % 2 == 0) + if (config.listenerType == ListenerType.GlobalPac || + config.listenerType == ListenerType.PacOpenAndClear || + config.listenerType == ListenerType.PacOpenOnly) { if (PACServerHandle.IsRunning) { @@ -1133,41 +1135,41 @@ namespace v2rayN.Forms private void menuNotEnabledHttp_Click(object sender, EventArgs e) { - SetListenerType(0); + SetListenerType(ListenerType.noHttpProxy); } private void menuGlobal_Click(object sender, EventArgs e) { - SetListenerType(1); + SetListenerType(ListenerType.GlobalHttp); } private void menuGlobalPAC_Click(object sender, EventArgs e) { - SetListenerType(2); + SetListenerType(ListenerType.GlobalPac); } private void menuKeep_Click(object sender, EventArgs e) { - SetListenerType(3); + SetListenerType(ListenerType.HttpOpenAndClear); } private void menuKeepPAC_Click(object sender, EventArgs e) { - SetListenerType(4); + SetListenerType(ListenerType.PacOpenAndClear); } private void menuKeepNothing_Click(object sender, EventArgs e) { - SetListenerType(5); + SetListenerType(ListenerType.HttpOpenOnly); } private void menuKeepPACNothing_Click(object sender, EventArgs e) { - SetListenerType(6); + SetListenerType(ListenerType.PacOpenOnly); } - private void SetListenerType(int type) + private void SetListenerType(ListenerType type) { config.listenerType = type; ChangePACButtonStatus(type); } - private void ChangePACButtonStatus(int type) + private void ChangePACButtonStatus(ListenerType type) { - if (type != 0) + if (type != ListenerType.noHttpProxy) { HttpProxyHandle.RestartHttpAgent(config, false); } @@ -1179,7 +1181,7 @@ namespace v2rayN.Forms for (int k = 0; k < menuSysAgentMode.DropDownItems.Count; k++) { ToolStripMenuItem item = ((ToolStripMenuItem)menuSysAgentMode.DropDownItems[k]); - item.Checked = (type == k); + item.Checked = ((int)type == k); } ConfigHandler.SaveConfig(ref config, false); diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.cs index 294ebe73..a882018b 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.cs +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Windows.Forms; using v2rayN.Handler; using v2rayN.Base; +using v2rayN.HttpProxyHandler; namespace v2rayN.Forms { @@ -67,7 +68,7 @@ namespace v2rayN.Forms //remoteDNS txtremoteDNS.Text = config.remoteDNS; - cmblistenerType.SelectedIndex = config.listenerType; + cmblistenerType.SelectedIndex = (int)config.listenerType; } /// @@ -262,7 +263,8 @@ namespace v2rayN.Forms //remoteDNS config.remoteDNS = txtremoteDNS.Text.TrimEx(); - config.listenerType = cmblistenerType.SelectedIndex; + config.listenerType = (ListenerType)Enum.ToObject(typeof(ListenerType), cmblistenerType.SelectedIndex); + return 0; } diff --git a/v2rayN/v2rayN/Handler/MainFormHandler.cs b/v2rayN/v2rayN/Handler/MainFormHandler.cs index f9d66496..83865d92 100644 --- a/v2rayN/v2rayN/Handler/MainFormHandler.cs +++ b/v2rayN/v2rayN/Handler/MainFormHandler.cs @@ -32,7 +32,7 @@ namespace v2rayN.Handler try { Color color = ColorTranslator.FromHtml("#3399CC"); - int index = config.listenerType; + int index = (int)config.listenerType; if (index > 0) { color = (new Color[] { Color.Red, Color.Purple, Color.DarkGreen, Color.Orange, Color.DarkSlateBlue, Color.RoyalBlue })[index - 1]; diff --git a/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs b/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs index 63826a02..0236c5a8 100644 --- a/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs +++ b/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs @@ -3,6 +3,19 @@ using v2rayN.Mode; namespace v2rayN.HttpProxyHandler { + /// + /// 系统代理(http)模式 + /// + public enum ListenerType + { + noHttpProxy = 0, + GlobalHttp = 1, + GlobalPac = 2, + HttpOpenAndClear = 3, + PacOpenAndClear = 4, + HttpOpenOnly = 5, + PacOpenOnly = 6 + } /// /// 系统代理(http)总处理 /// 启动privoxy提供http协议 @@ -12,29 +25,29 @@ namespace v2rayN.HttpProxyHandler { private static bool Update(Config config, bool forceDisable) { - int type = config.listenerType; + ListenerType type = config.listenerType; if (forceDisable) { - type = 0; + type = ListenerType.noHttpProxy; } try { - if (type != 0) + if (type != ListenerType.noHttpProxy) { int port = Global.httpPort; if (port <= 0) { return false; } - if (type == 1) + if (type == ListenerType.GlobalHttp) { //PACServerHandle.Stop(); //ProxySetting.SetProxy($"{Global.Loopback}:{port}", Global.IEProxyExceptions, 2); SysProxyHandle.SetIEProxy(true, true, $"{Global.Loopback}:{port}"); } - else if (type == 2) + else if (type == ListenerType.GlobalPac) { string pacUrl = GetPacUrl(); //ProxySetting.SetProxy(pacUrl, "", 4); @@ -42,24 +55,24 @@ namespace v2rayN.HttpProxyHandler //PACServerHandle.Stop(); PACServerHandle.Init(config); } - else if (type == 3) + else if (type == ListenerType.HttpOpenAndClear) { //PACServerHandle.Stop(); SysProxyHandle.ResetIEProxy(); } - else if (type == 4) + else if (type == ListenerType.PacOpenAndClear) { string pacUrl = GetPacUrl(); SysProxyHandle.ResetIEProxy(); //PACServerHandle.Stop(); PACServerHandle.Init(config); } - else if (type == 5) + else if (type == ListenerType.HttpOpenOnly) { //PACServerHandle.Stop(); //SysProxyHandle.ResetIEProxy(); } - else if (type == 6) + else if (type == ListenerType.PacOpenOnly) { string pacUrl = GetPacUrl(); //SysProxyHandle.ResetIEProxy(); @@ -114,7 +127,7 @@ namespace v2rayN.HttpProxyHandler { try { - if (config.listenerType != 5 && config.listenerType != 6) + if (config.listenerType != ListenerType.HttpOpenOnly && config.listenerType != ListenerType.PacOpenOnly) { Update(config, true); } @@ -138,7 +151,7 @@ namespace v2rayN.HttpProxyHandler public static void RestartHttpAgent(Config config, bool forced) { bool isRestart = false; - if (config.listenerType == 0) + if (config.listenerType == ListenerType.noHttpProxy) { // 关闭http proxy时,直接返回 return; diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs index f41e36b1..60e48e55 100644 --- a/v2rayN/v2rayN/Mode/Config.cs +++ b/v2rayN/v2rayN/Mode/Config.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using v2rayN.Base; +using v2rayN.HttpProxyHandler; + namespace v2rayN.Mode { @@ -107,9 +109,9 @@ namespace v2rayN.Mode } /// - /// 监听状态 0-not 1-http 2-PAC + /// 监听状态 /// - public int listenerType + public ListenerType listenerType { get; set; } From ec3eb2215b9394d701719bfe868609e4e0aac82e Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Fri, 20 Mar 2020 08:44:45 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E9=A2=84=E9=98=B2=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2rayN/v2rayN/Base/HttpWebServerB.cs | 39 ++++++++++++++++------------ 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/v2rayN/v2rayN/Base/HttpWebServerB.cs b/v2rayN/v2rayN/Base/HttpWebServerB.cs index 403ffedb..fcbca1dd 100644 --- a/v2rayN/v2rayN/Base/HttpWebServerB.cs +++ b/v2rayN/v2rayN/Base/HttpWebServerB.cs @@ -35,25 +35,32 @@ namespace v2rayN.Base private void StartListen() { - listener = new TcpListener(IPAddress.Any, port); - listener.Start(); - Utils.SaveLog("WebserverB running..."); - - while (true) + try { - if (!listener.Pending()) - { - Thread.Sleep(100); - continue; - } + listener = new TcpListener(IPAddress.Any, port); + listener.Start(); + Utils.SaveLog("WebserverB running..."); - TcpClient socket = listener.AcceptTcpClient(); - Thread thread = new Thread(new ParameterizedThreadStart(ProcessThread)) + while (true) { - IsBackground = true - }; - thread.Start(socket); - Thread.Sleep(1); + if (!listener.Pending()) + { + Thread.Sleep(100); + continue; + } + + TcpClient socket = listener.AcceptTcpClient(); + Thread thread = new Thread(new ParameterizedThreadStart(ProcessThread)) + { + IsBackground = true + }; + thread.Start(socket); + Thread.Sleep(1); + } + } + catch + { + Utils.SaveLog("WebserverB start fail."); } } private void ProcessThread(object obj)