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)