Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
685baa576b | ||
|
|
7cdead8cb1 | ||
|
|
f220825b80 | ||
|
|
2b00490dd6 | ||
|
|
d361afa3f3 | ||
|
|
8d5bd5a80c | ||
|
|
002283899f | ||
|
|
206b440966 | ||
|
|
b5b5eb25a1 | ||
|
|
f84e538b6a | ||
|
|
5b9cdec156 | ||
|
|
cf0bd7f1e6 | ||
|
|
f3a86a2173 | ||
|
|
0a1d4d5193 | ||
|
|
88e2288298 | ||
|
|
fec47d4b72 | ||
|
|
f7f23e7980 | ||
|
|
32100db3fc | ||
|
|
dd2bed49f1 | ||
|
|
6a427a2158 | ||
|
|
716029def8 | ||
|
|
610a610ee0 | ||
|
|
4fc0738dad | ||
|
|
fe29771870 | ||
|
|
19be43d2d9 | ||
|
|
cb01809093 | ||
|
|
1138d660b2 | ||
|
|
c29ccf76d5 | ||
|
|
5907bf388c | ||
|
|
54adaffb92 | ||
|
|
3bc7812e1a | ||
|
|
16cd9706f9 | ||
|
|
839d07870c | ||
|
|
933d3c2678 | ||
|
|
a29b744526 | ||
|
|
c4070b26ff | ||
|
|
6d0b4e8c75 | ||
|
|
058e1aafd1 | ||
|
|
eac7361a0b | ||
|
|
64e6d6d038 | ||
|
|
d613fe79af | ||
|
|
565a7b1680 | ||
|
|
5076f45674 | ||
|
|
dc72c949c3 | ||
|
|
c85e418afa | ||
|
|
2fc3e846df | ||
|
|
a665dc9db7 | ||
|
|
672eb4b365 | ||
|
|
c9a150565d | ||
|
|
5b271108c0 | ||
|
|
8b63a19161 | ||
|
|
0d17a112a6 | ||
|
|
d997633810 | ||
|
|
446e981d0e | ||
|
|
dabca02b18 | ||
|
|
790bd1217c | ||
|
|
43d8515e23 | ||
|
|
bcd051e5a3 | ||
|
|
1a1e08753f | ||
|
|
d46838eb55 | ||
|
|
a70b5eeef5 | ||
|
|
7513ff860b | ||
|
|
4d872e9143 | ||
|
|
4408d67c49 | ||
|
|
545e1c5402 | ||
|
|
03dec5b604 | ||
|
|
777427787a |
@@ -6,5 +6,5 @@
|
|||||||
- Run v2rayN.exe
|
- Run v2rayN.exe
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
- Microsoft [.NET Framework 4.6](https://docs.microsoft.com/zh-cn/dotnet/framework/install/guide-for-developers) or higher
|
- Microsoft [.NET Framework 4.8](https://docs.microsoft.com/zh-cn/dotnet/framework/install/guide-for-developers)
|
||||||
- Project V core [https://github.com/v2fly/v2ray-core/releases](https://github.com/v2fly/v2ray-core/releases)
|
- Project V core [https://github.com/v2fly/v2ray-core/releases](https://github.com/v2fly/v2ray-core/releases)
|
||||||
|
|||||||
38
v2rayN/v2rayN/Forms/AddServer3Form.Designer.cs
generated
38
v2rayN/v2rayN/Forms/AddServer3Form.Designer.cs
generated
@@ -45,12 +45,8 @@
|
|||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.menuServer = new System.Windows.Forms.MenuStrip();
|
|
||||||
this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.menuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.menuServer.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
@@ -87,13 +83,6 @@
|
|||||||
//
|
//
|
||||||
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbSecurity.FormattingEnabled = true;
|
this.cmbSecurity.FormattingEnabled = true;
|
||||||
this.cmbSecurity.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbSecurity.Items"),
|
|
||||||
resources.GetString("cmbSecurity.Items1"),
|
|
||||||
resources.GetString("cmbSecurity.Items2"),
|
|
||||||
resources.GetString("cmbSecurity.Items3"),
|
|
||||||
resources.GetString("cmbSecurity.Items4"),
|
|
||||||
resources.GetString("cmbSecurity.Items5")});
|
|
||||||
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
||||||
this.cmbSecurity.Name = "cmbSecurity";
|
this.cmbSecurity.Name = "cmbSecurity";
|
||||||
//
|
//
|
||||||
@@ -161,26 +150,6 @@
|
|||||||
resources.ApplyResources(this.panel1, "panel1");
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
//
|
//
|
||||||
// menuServer
|
|
||||||
//
|
|
||||||
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.MenuItem1});
|
|
||||||
resources.ApplyResources(this.menuServer, "menuServer");
|
|
||||||
this.menuServer.Name = "menuServer";
|
|
||||||
//
|
|
||||||
// MenuItem1
|
|
||||||
//
|
|
||||||
this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.menuItemImportClipboard});
|
|
||||||
this.MenuItem1.Name = "MenuItem1";
|
|
||||||
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
|
||||||
//
|
|
||||||
// menuItemImportClipboard
|
|
||||||
//
|
|
||||||
this.menuItemImportClipboard.Name = "menuItemImportClipboard";
|
|
||||||
resources.ApplyResources(this.menuItemImportClipboard, "menuItemImportClipboard");
|
|
||||||
this.menuItemImportClipboard.Click += new System.EventHandler(this.menuItemImportClipboard_Click);
|
|
||||||
//
|
|
||||||
// AddServer3Form
|
// AddServer3Form
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
@@ -189,7 +158,6 @@
|
|||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.menuServer);
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
this.MinimizeBox = true;
|
this.MinimizeBox = true;
|
||||||
this.Name = "AddServer3Form";
|
this.Name = "AddServer3Form";
|
||||||
@@ -197,10 +165,7 @@
|
|||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.menuServer.ResumeLayout(false);
|
|
||||||
this.menuServer.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,8 +187,5 @@
|
|||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.Label label13;
|
private System.Windows.Forms.Label label13;
|
||||||
private System.Windows.Forms.MenuStrip menuServer;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuItemImportClipboard;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -15,6 +15,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void AddServer3Form_Load(object sender, EventArgs e)
|
private void AddServer3Form_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
cmbSecurity.Items.AddRange(Global.ssSecuritys.ToArray());
|
||||||
if (EditIndex >= 0)
|
if (EditIndex >= 0)
|
||||||
{
|
{
|
||||||
vmessItem = config.vmess[EditIndex];
|
vmessItem = config.vmess[EditIndex];
|
||||||
@@ -100,41 +101,7 @@ namespace v2rayN.Forms
|
|||||||
private void btnClose_Click(object sender, EventArgs e)
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region 导入配置
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 从剪贴板导入URL
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void menuItemImportClipboard_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ImportConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ImportConfig()
|
|
||||||
{
|
|
||||||
ClearServer();
|
|
||||||
|
|
||||||
VmessItem vmessItem = ShareHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg);
|
|
||||||
if (vmessItem == null)
|
|
||||||
{
|
|
||||||
UI.ShowWarning(msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
|
||||||
cmbSecurity.Text = vmessItem.security;
|
|
||||||
txtId.Text = vmessItem.id;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>4</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>&Cancel</value>
|
<value>&Cancel</value>
|
||||||
@@ -143,169 +143,10 @@
|
|||||||
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label13.Name" xml:space="preserve">
|
|
||||||
<value>label13</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbSecurity.Name" xml:space="preserve">
|
|
||||||
<value>cmbSecurity</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbSecurity.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbSecurity.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbSecurity.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
|
||||||
<value>txtRemarks</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Name" xml:space="preserve">
|
|
||||||
<value>label6</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label5.Name" xml:space="preserve">
|
|
||||||
<value>label5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label5.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label5.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label5.ZOrder" xml:space="preserve">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtId.Name" xml:space="preserve">
|
|
||||||
<value>txtId</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtId.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtId.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtId.ZOrder" xml:space="preserve">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.Name" xml:space="preserve">
|
|
||||||
<value>label3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
|
||||||
<value>6</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPort.Name" xml:space="preserve">
|
|
||||||
<value>txtPort</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPort.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPort.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
|
||||||
<value>7</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Name" xml:space="preserve">
|
|
||||||
<value>label2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
|
||||||
<value>8</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.Name" xml:space="preserve">
|
|
||||||
<value>txtAddress</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
|
||||||
<value>9</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Name" xml:space="preserve">
|
|
||||||
<value>label1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
|
||||||
<value>10</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 35</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>547, 196</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>Server</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Name" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="label13.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="label13.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -333,24 +174,6 @@
|
|||||||
<data name=">>label13.ZOrder" xml:space="preserve">
|
<data name=">>label13.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.Items" xml:space="preserve">
|
|
||||||
<value>aes-256-gcm</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items1" xml:space="preserve">
|
|
||||||
<value>aes-128-gcm</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items2" xml:space="preserve">
|
|
||||||
<value>chacha20-poly1305</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items3" xml:space="preserve">
|
|
||||||
<value>chacha20-ietf-poly1305</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items4" xml:space="preserve">
|
|
||||||
<value>none</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items5" xml:space="preserve">
|
|
||||||
<value>plain</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 123</value>
|
<value>127, 123</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -358,7 +181,7 @@
|
|||||||
<value>278, 20</value>
|
<value>278, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.TabIndex" type="System.Int32, mscorlib">
|
<data name="cmbSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>6</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmbSecurity.Name" xml:space="preserve">
|
<data name=">>cmbSecurity.Name" xml:space="preserve">
|
||||||
<value>cmbSecurity</value>
|
<value>cmbSecurity</value>
|
||||||
@@ -379,7 +202,7 @@
|
|||||||
<value>278, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>11</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
<value>txtRemarks</value>
|
<value>txtRemarks</value>
|
||||||
@@ -450,14 +273,11 @@
|
|||||||
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 91</value>
|
<value>127, 91</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.PasswordChar" type="System.Char, mscorlib" xml:space="preserve">
|
|
||||||
<value>*</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>5</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtId.Name" xml:space="preserve">
|
<data name=">>txtId.Name" xml:space="preserve">
|
||||||
<value>txtId</value>
|
<value>txtId</value>
|
||||||
@@ -505,7 +325,7 @@
|
|||||||
<value>194, 21</value>
|
<value>194, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.Name" xml:space="preserve">
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
<value>txtPort</value>
|
<value>txtPort</value>
|
||||||
@@ -553,7 +373,7 @@
|
|||||||
<value>359, 21</value>
|
<value>359, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAddress.Name" xml:space="preserve">
|
<data name=">>txtAddress.Name" xml:space="preserve">
|
||||||
<value>txtAddress</value>
|
<value>txtAddress</value>
|
||||||
@@ -594,6 +414,45 @@
|
|||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>547, 221</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Server</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>303, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
<data name=">>btnOK.Name" xml:space="preserve">
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
<value>btnOK</value>
|
<value>btnOK</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -630,35 +489,11 @@
|
|||||||
<data name=">>panel2.ZOrder" xml:space="preserve">
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>303, 17</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>75, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
|
||||||
<value>&OK</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Name" xml:space="preserve">
|
|
||||||
<value>btnOK</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Parent" xml:space="preserve">
|
|
||||||
<value>panel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Top</value>
|
<value>Top</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 25</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 10</value>
|
<value>547, 10</value>
|
||||||
@@ -678,45 +513,6 @@
|
|||||||
<data name=">>panel1.ZOrder" xml:space="preserve">
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="menuServer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<data name="menuServer.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>547, 25</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>8</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Name" xml:space="preserve">
|
|
||||||
<value>menuServer</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>162, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Text" xml:space="preserve">
|
|
||||||
<value>Import configuration file</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>235, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuItemImportClipboard.Text" xml:space="preserve">
|
|
||||||
<value>Import URL from clipboard</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>zh-CN</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -729,18 +525,6 @@
|
|||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>Edit or add a [Shadowsocks] server</value>
|
<value>Edit or add a [Shadowsocks] server</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>MenuItem1.Name" xml:space="preserve">
|
|
||||||
<value>MenuItem1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>MenuItem1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuItemImportClipboard.Name" xml:space="preserve">
|
|
||||||
<value>menuItemImportClipboard</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuItemImportClipboard.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>AddServer3Form</value>
|
<value>AddServer3Form</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
37
v2rayN/v2rayN/Forms/AddServer4Form.Designer.cs
generated
37
v2rayN/v2rayN/Forms/AddServer4Form.Designer.cs
generated
@@ -45,25 +45,20 @@
|
|||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.menuServer = new System.Windows.Forms.MenuStrip();
|
|
||||||
this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.menuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.menuServer.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.btnClose, "btnClose");
|
|
||||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
this.btnClose.Name = "btnClose";
|
this.btnClose.Name = "btnClose";
|
||||||
this.btnClose.UseVisualStyleBackColor = true;
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
|
||||||
this.groupBox1.Controls.Add(this.txtSecurity);
|
this.groupBox1.Controls.Add(this.txtSecurity);
|
||||||
this.groupBox1.Controls.Add(this.label4);
|
this.groupBox1.Controls.Add(this.label4);
|
||||||
this.groupBox1.Controls.Add(this.txtId);
|
this.groupBox1.Controls.Add(this.txtId);
|
||||||
@@ -75,6 +70,7 @@
|
|||||||
this.groupBox1.Controls.Add(this.label2);
|
this.groupBox1.Controls.Add(this.label2);
|
||||||
this.groupBox1.Controls.Add(this.txtAddress);
|
this.groupBox1.Controls.Add(this.txtAddress);
|
||||||
this.groupBox1.Controls.Add(this.label1);
|
this.groupBox1.Controls.Add(this.label1);
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -135,9 +131,9 @@
|
|||||||
//
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.panel2, "panel2");
|
|
||||||
this.panel2.Controls.Add(this.btnClose);
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
this.panel2.Controls.Add(this.btnOK);
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
//
|
//
|
||||||
// btnOK
|
// btnOK
|
||||||
@@ -152,26 +148,6 @@
|
|||||||
resources.ApplyResources(this.panel1, "panel1");
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
//
|
//
|
||||||
// menuServer
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.menuServer, "menuServer");
|
|
||||||
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.MenuItem1});
|
|
||||||
this.menuServer.Name = "menuServer";
|
|
||||||
//
|
|
||||||
// MenuItem1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
|
||||||
this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.menuItemImportClipboard});
|
|
||||||
this.MenuItem1.Name = "MenuItem1";
|
|
||||||
//
|
|
||||||
// menuItemImportClipboard
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.menuItemImportClipboard, "menuItemImportClipboard");
|
|
||||||
this.menuItemImportClipboard.Name = "menuItemImportClipboard";
|
|
||||||
this.menuItemImportClipboard.Click += new System.EventHandler(this.menuItemImportClipboard_Click);
|
|
||||||
//
|
|
||||||
// AddServer4Form
|
// AddServer4Form
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
@@ -180,7 +156,6 @@
|
|||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.menuServer);
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
this.MinimizeBox = true;
|
this.MinimizeBox = true;
|
||||||
this.Name = "AddServer4Form";
|
this.Name = "AddServer4Form";
|
||||||
@@ -188,10 +163,7 @@
|
|||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.menuServer.ResumeLayout(false);
|
|
||||||
this.menuServer.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -209,9 +181,6 @@
|
|||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.Label label13;
|
private System.Windows.Forms.Label label13;
|
||||||
private System.Windows.Forms.MenuStrip menuServer;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuItemImportClipboard;
|
|
||||||
private System.Windows.Forms.TextBox txtId;
|
private System.Windows.Forms.TextBox txtId;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.TextBox txtSecurity;
|
private System.Windows.Forms.TextBox txtSecurity;
|
||||||
|
|||||||
@@ -90,40 +90,7 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region 导入配置
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 从剪贴板导入URL
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void menuItemImportClipboard_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ImportConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ImportConfig()
|
|
||||||
{
|
|
||||||
ClearServer();
|
|
||||||
|
|
||||||
VmessItem vmessItem = ShareHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg);
|
|
||||||
if (vmessItem == null)
|
|
||||||
{
|
|
||||||
UI.ShowWarning(msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
|
||||||
txtSecurity.Text = vmessItem.security;
|
|
||||||
txtId.Text = vmessItem.id;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,474 +118,420 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>113, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>113, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Name" xml:space="preserve">
|
|
||||||
<value>label6</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtSecurity.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel2.Name" xml:space="preserve">
|
|
||||||
<value>panel2</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>547, 25</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>11</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Bottom</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Text" xml:space="preserve">
|
|
||||||
<value>Import configuration file</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel1.Name" xml:space="preserve">
|
|
||||||
<value>panel1</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Text" xml:space="preserve">
|
|
||||||
<value>Password(Optional)</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuItemImportClipboard.Name" xml:space="preserve">
|
|
||||||
<value>menuItemImportClipboard</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>8</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>89, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 27</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.ZOrder" xml:space="preserve">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>Edit or add a [Socks] server</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
|
||||||
<value>10</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>24</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuItemImportClipboard.Text" xml:space="preserve">
|
|
||||||
<value>Import URL from clipboard</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>303, 17</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>23</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>MenuItem1.Name" xml:space="preserve">
|
|
||||||
<value>MenuItem1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtAddress.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>359, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>396, 17</value>
|
<value>396, 17</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>8</value>
|
<value>75, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuServer.Location" type="System.Drawing.Point, System.Drawing">
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<value>0, 0</value>
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
</data>
|
|
||||||
<data name=">>label1.Name" xml:space="preserve">
|
|
||||||
<value>label1</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>547, 60</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 25</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>22</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>162, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>Server</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 120</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Parent" xml:space="preserve">
|
|
||||||
<value>panel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel1.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtSecurity.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>26</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtId.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Name" xml:space="preserve">
|
|
||||||
<value>menuServer</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtId.Name" xml:space="preserve">
|
|
||||||
<value>txtId</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>235, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 93</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtId.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 31</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Name" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>AddServer4Form</value>
|
<value>&Cancel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
<value>278, 21</value>
|
<value>btnClose</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label4.Type" xml:space="preserve">
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPort.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 58</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label4.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>71, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>MenuItem1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel1.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPort.Name" xml:space="preserve">
|
|
||||||
<value>txtPort</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnClose.Parent" xml:space="preserve">
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
<value>panel2</value>
|
<value>panel2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
<value>547, 10</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.PasswordChar" type="System.Char, mscorlib" xml:space="preserve">
|
<data name="txtSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>*</value>
|
<value>127, 89</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtId.ZOrder" xml:space="preserve">
|
<data name="txtSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>278, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtSecurity.Name" xml:space="preserve">
|
<data name=">>txtSecurity.Name" xml:space="preserve">
|
||||||
<value>txtSecurity</value>
|
<value>txtSecurity</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>menuServer.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuItemImportClipboard.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label4.Name" xml:space="preserve">
|
|
||||||
<value>label4</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
|
||||||
<value>&OK</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnClose.Name" xml:space="preserve">
|
|
||||||
<value>btnClose</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>278, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 124</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>10</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Name" xml:space="preserve">
|
|
||||||
<value>btnOK</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>194, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnClose.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>6</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel2.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>7</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.Name" xml:space="preserve">
|
|
||||||
<value>label13</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtSecurity.Type" xml:space="preserve">
|
<data name=">>txtSecurity.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name=">>txtSecurity.Parent" xml:space="preserve">
|
||||||
<value>v2rayN.Forms.BaseServerForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
|
||||||
<data name=">>label3.Name" xml:space="preserve">
|
|
||||||
<value>label3</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>Server port</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 231</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
|
||||||
<value>9</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
|
||||||
<value>&Cancel</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
|
||||||
<value>6, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>Server address</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>25</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.Name" xml:space="preserve">
|
|
||||||
<value>txtAddress</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 151</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>95, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Text" xml:space="preserve">
|
|
||||||
<value>Alias (remarks)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.Text" xml:space="preserve">
|
|
||||||
<value>* Fill in manually</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
|
||||||
<value>7</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Name" xml:space="preserve">
|
|
||||||
<value>label2</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 62</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>547, 291</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel2.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>547, 196</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.ZOrder" xml:space="preserve">
|
|
||||||
<value>6</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtSecurity.ZOrder" xml:space="preserve">
|
<data name=">>txtSecurity.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>75, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 89</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>422, 155</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<value>4</value>
|
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>5</value>
|
<value>12, 93</value>
|
||||||
</data>
|
|
||||||
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>75, 23</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>89, 12</value>
|
<value>89, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAddress.Parent" xml:space="preserve">
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>groupBox1</value>
|
<value>25</value>
|
||||||
</data>
|
|
||||||
<data name=">>label4.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 35</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
|
||||||
<value>txtRemarks</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 155</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Text" xml:space="preserve">
|
<data name="label4.Text" xml:space="preserve">
|
||||||
<value>User(Optional)</value>
|
<value>User(Optional)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
|
<value>label4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 120</value>
|
||||||
|
</data>
|
||||||
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Name" xml:space="preserve">
|
||||||
|
<value>txtId</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 124</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>113, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>23</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Password(Optional)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>422, 155</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>113, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>22</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Text" xml:space="preserve">
|
||||||
|
<value>* Fill in manually</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Name" xml:space="preserve">
|
||||||
|
<value>label13</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 151</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>278, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
|
<value>txtRemarks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 155</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Text" xml:space="preserve">
|
||||||
|
<value>Alias (remarks)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Name" xml:space="preserve">
|
||||||
|
<value>label6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 58</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>194, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
|
<value>txtPort</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 62</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>71, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>Server port</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
|
<value>label2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 27</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>359, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Name" xml:space="preserve">
|
||||||
|
<value>txtAddress</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 31</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Server address</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>547, 221</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Server</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>303, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 231</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>547, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Top</value>
|
<value>Top</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>3</value>
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>547, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Name" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
<value>zh-Hans</value>
|
<value>6, 12</value>
|
||||||
</metadata>
|
</data>
|
||||||
<metadata name="menuServer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>17, 17</value>
|
<value>547, 291</value>
|
||||||
</metadata>
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>Edit or add a [Socks] server</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>AddServer4Form</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseServerForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
322
v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs
generated
322
v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs
generated
@@ -35,31 +35,6 @@
|
|||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
this.btnGUID = new System.Windows.Forms.Button();
|
this.btnGUID = new System.Windows.Forms.Button();
|
||||||
this.label13 = new System.Windows.Forms.Label();
|
this.label13 = new System.Windows.Forms.Label();
|
||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
|
||||||
this.label24 = new System.Windows.Forms.Label();
|
|
||||||
this.label23 = new System.Windows.Forms.Label();
|
|
||||||
this.panTlsMore = new System.Windows.Forms.Panel();
|
|
||||||
this.txtSNI = new System.Windows.Forms.TextBox();
|
|
||||||
this.label22 = new System.Windows.Forms.Label();
|
|
||||||
this.label21 = new System.Windows.Forms.Label();
|
|
||||||
this.cmbAllowInsecure = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label9 = new System.Windows.Forms.Label();
|
|
||||||
this.label20 = new System.Windows.Forms.Label();
|
|
||||||
this.txtPath = new System.Windows.Forms.TextBox();
|
|
||||||
this.cmbNetwork = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label7 = new System.Windows.Forms.Label();
|
|
||||||
this.label19 = new System.Windows.Forms.Label();
|
|
||||||
this.label18 = new System.Windows.Forms.Label();
|
|
||||||
this.label17 = new System.Windows.Forms.Label();
|
|
||||||
this.label16 = new System.Windows.Forms.Label();
|
|
||||||
this.label14 = new System.Windows.Forms.Label();
|
|
||||||
this.label15 = new System.Windows.Forms.Label();
|
|
||||||
this.cmbStreamSecurity = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label12 = new System.Windows.Forms.Label();
|
|
||||||
this.txtRequestHost = new System.Windows.Forms.TextBox();
|
|
||||||
this.label11 = new System.Windows.Forms.Label();
|
|
||||||
this.label10 = new System.Windows.Forms.Label();
|
|
||||||
this.cmbHeaderType = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label8 = new System.Windows.Forms.Label();
|
this.label8 = new System.Windows.Forms.Label();
|
||||||
this.cmbSecurity = new System.Windows.Forms.ComboBox();
|
this.cmbSecurity = new System.Windows.Forms.ComboBox();
|
||||||
this.txtRemarks = new System.Windows.Forms.TextBox();
|
this.txtRemarks = new System.Windows.Forms.TextBox();
|
||||||
@@ -74,18 +49,11 @@
|
|||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.menuServer = new System.Windows.Forms.MenuStrip();
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.transportControl = new v2rayN.Forms.ServerTransportControl();
|
||||||
this.MenuItemImportClient = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.MenuItemImportServer = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.MenuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.label25 = new System.Windows.Forms.Label();
|
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
|
||||||
this.panTlsMore.SuspendLayout();
|
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.menuServer.SuspendLayout();
|
this.panel3.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
@@ -102,7 +70,6 @@
|
|||||||
this.groupBox1.Controls.Add(this.label4);
|
this.groupBox1.Controls.Add(this.label4);
|
||||||
this.groupBox1.Controls.Add(this.btnGUID);
|
this.groupBox1.Controls.Add(this.btnGUID);
|
||||||
this.groupBox1.Controls.Add(this.label13);
|
this.groupBox1.Controls.Add(this.label13);
|
||||||
this.groupBox1.Controls.Add(this.groupBox2);
|
|
||||||
this.groupBox1.Controls.Add(this.label8);
|
this.groupBox1.Controls.Add(this.label8);
|
||||||
this.groupBox1.Controls.Add(this.cmbSecurity);
|
this.groupBox1.Controls.Add(this.cmbSecurity);
|
||||||
this.groupBox1.Controls.Add(this.txtRemarks);
|
this.groupBox1.Controls.Add(this.txtRemarks);
|
||||||
@@ -121,12 +88,6 @@
|
|||||||
// cmbFlow
|
// cmbFlow
|
||||||
//
|
//
|
||||||
this.cmbFlow.FormattingEnabled = true;
|
this.cmbFlow.FormattingEnabled = true;
|
||||||
this.cmbFlow.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbFlow.Items"),
|
|
||||||
resources.GetString("cmbFlow.Items1"),
|
|
||||||
resources.GetString("cmbFlow.Items2"),
|
|
||||||
resources.GetString("cmbFlow.Items3"),
|
|
||||||
resources.GetString("cmbFlow.Items4")});
|
|
||||||
resources.ApplyResources(this.cmbFlow, "cmbFlow");
|
resources.ApplyResources(this.cmbFlow, "cmbFlow");
|
||||||
this.cmbFlow.Name = "cmbFlow";
|
this.cmbFlow.Name = "cmbFlow";
|
||||||
//
|
//
|
||||||
@@ -147,190 +108,6 @@
|
|||||||
resources.ApplyResources(this.label13, "label13");
|
resources.ApplyResources(this.label13, "label13");
|
||||||
this.label13.Name = "label13";
|
this.label13.Name = "label13";
|
||||||
//
|
//
|
||||||
// groupBox2
|
|
||||||
//
|
|
||||||
this.groupBox2.Controls.Add(this.label25);
|
|
||||||
this.groupBox2.Controls.Add(this.label24);
|
|
||||||
this.groupBox2.Controls.Add(this.label23);
|
|
||||||
this.groupBox2.Controls.Add(this.panTlsMore);
|
|
||||||
this.groupBox2.Controls.Add(this.label9);
|
|
||||||
this.groupBox2.Controls.Add(this.label20);
|
|
||||||
this.groupBox2.Controls.Add(this.txtPath);
|
|
||||||
this.groupBox2.Controls.Add(this.cmbNetwork);
|
|
||||||
this.groupBox2.Controls.Add(this.label7);
|
|
||||||
this.groupBox2.Controls.Add(this.label19);
|
|
||||||
this.groupBox2.Controls.Add(this.label18);
|
|
||||||
this.groupBox2.Controls.Add(this.label17);
|
|
||||||
this.groupBox2.Controls.Add(this.label16);
|
|
||||||
this.groupBox2.Controls.Add(this.label14);
|
|
||||||
this.groupBox2.Controls.Add(this.label15);
|
|
||||||
this.groupBox2.Controls.Add(this.cmbStreamSecurity);
|
|
||||||
this.groupBox2.Controls.Add(this.label12);
|
|
||||||
this.groupBox2.Controls.Add(this.txtRequestHost);
|
|
||||||
this.groupBox2.Controls.Add(this.label11);
|
|
||||||
this.groupBox2.Controls.Add(this.label10);
|
|
||||||
this.groupBox2.Controls.Add(this.cmbHeaderType);
|
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
|
||||||
this.groupBox2.Name = "groupBox2";
|
|
||||||
this.groupBox2.TabStop = false;
|
|
||||||
//
|
|
||||||
// label24
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label24, "label24");
|
|
||||||
this.label24.Name = "label24";
|
|
||||||
//
|
|
||||||
// label23
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label23, "label23");
|
|
||||||
this.label23.Name = "label23";
|
|
||||||
//
|
|
||||||
// panTlsMore
|
|
||||||
//
|
|
||||||
this.panTlsMore.Controls.Add(this.txtSNI);
|
|
||||||
this.panTlsMore.Controls.Add(this.label22);
|
|
||||||
this.panTlsMore.Controls.Add(this.label21);
|
|
||||||
this.panTlsMore.Controls.Add(this.cmbAllowInsecure);
|
|
||||||
resources.ApplyResources(this.panTlsMore, "panTlsMore");
|
|
||||||
this.panTlsMore.Name = "panTlsMore";
|
|
||||||
//
|
|
||||||
// txtSNI
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtSNI, "txtSNI");
|
|
||||||
this.txtSNI.Name = "txtSNI";
|
|
||||||
//
|
|
||||||
// label22
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label22, "label22");
|
|
||||||
this.label22.Name = "label22";
|
|
||||||
//
|
|
||||||
// label21
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label21, "label21");
|
|
||||||
this.label21.Name = "label21";
|
|
||||||
//
|
|
||||||
// cmbAllowInsecure
|
|
||||||
//
|
|
||||||
this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbAllowInsecure.FormattingEnabled = true;
|
|
||||||
this.cmbAllowInsecure.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbAllowInsecure.Items"),
|
|
||||||
resources.GetString("cmbAllowInsecure.Items1"),
|
|
||||||
resources.GetString("cmbAllowInsecure.Items2")});
|
|
||||||
resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure");
|
|
||||||
this.cmbAllowInsecure.Name = "cmbAllowInsecure";
|
|
||||||
//
|
|
||||||
// label9
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label9, "label9");
|
|
||||||
this.label9.Name = "label9";
|
|
||||||
//
|
|
||||||
// label20
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label20, "label20");
|
|
||||||
this.label20.Name = "label20";
|
|
||||||
//
|
|
||||||
// txtPath
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtPath, "txtPath");
|
|
||||||
this.txtPath.Name = "txtPath";
|
|
||||||
//
|
|
||||||
// cmbNetwork
|
|
||||||
//
|
|
||||||
this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbNetwork.FormattingEnabled = true;
|
|
||||||
this.cmbNetwork.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbNetwork.Items"),
|
|
||||||
resources.GetString("cmbNetwork.Items1"),
|
|
||||||
resources.GetString("cmbNetwork.Items2"),
|
|
||||||
resources.GetString("cmbNetwork.Items3"),
|
|
||||||
resources.GetString("cmbNetwork.Items4"),
|
|
||||||
resources.GetString("cmbNetwork.Items5")});
|
|
||||||
resources.ApplyResources(this.cmbNetwork, "cmbNetwork");
|
|
||||||
this.cmbNetwork.Name = "cmbNetwork";
|
|
||||||
this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged);
|
|
||||||
//
|
|
||||||
// label7
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label7, "label7");
|
|
||||||
this.label7.Name = "label7";
|
|
||||||
//
|
|
||||||
// label19
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label19, "label19");
|
|
||||||
this.label19.Name = "label19";
|
|
||||||
//
|
|
||||||
// label18
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label18, "label18");
|
|
||||||
this.label18.Name = "label18";
|
|
||||||
//
|
|
||||||
// label17
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label17, "label17");
|
|
||||||
this.label17.Name = "label17";
|
|
||||||
//
|
|
||||||
// label16
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label16, "label16");
|
|
||||||
this.label16.Name = "label16";
|
|
||||||
//
|
|
||||||
// label14
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label14, "label14");
|
|
||||||
this.label14.Name = "label14";
|
|
||||||
//
|
|
||||||
// label15
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label15, "label15");
|
|
||||||
this.label15.Name = "label15";
|
|
||||||
//
|
|
||||||
// cmbStreamSecurity
|
|
||||||
//
|
|
||||||
this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbStreamSecurity.FormattingEnabled = true;
|
|
||||||
this.cmbStreamSecurity.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbStreamSecurity.Items"),
|
|
||||||
resources.GetString("cmbStreamSecurity.Items1"),
|
|
||||||
resources.GetString("cmbStreamSecurity.Items2")});
|
|
||||||
resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity");
|
|
||||||
this.cmbStreamSecurity.Name = "cmbStreamSecurity";
|
|
||||||
this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged);
|
|
||||||
//
|
|
||||||
// label12
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label12, "label12");
|
|
||||||
this.label12.Name = "label12";
|
|
||||||
//
|
|
||||||
// txtRequestHost
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtRequestHost, "txtRequestHost");
|
|
||||||
this.txtRequestHost.Name = "txtRequestHost";
|
|
||||||
//
|
|
||||||
// label11
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label11, "label11");
|
|
||||||
this.label11.Name = "label11";
|
|
||||||
//
|
|
||||||
// label10
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label10, "label10");
|
|
||||||
this.label10.Name = "label10";
|
|
||||||
//
|
|
||||||
// cmbHeaderType
|
|
||||||
//
|
|
||||||
this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbHeaderType.FormattingEnabled = true;
|
|
||||||
this.cmbHeaderType.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbHeaderType.Items"),
|
|
||||||
resources.GetString("cmbHeaderType.Items1"),
|
|
||||||
resources.GetString("cmbHeaderType.Items2"),
|
|
||||||
resources.GetString("cmbHeaderType.Items3"),
|
|
||||||
resources.GetString("cmbHeaderType.Items4"),
|
|
||||||
resources.GetString("cmbHeaderType.Items5"),
|
|
||||||
resources.GetString("cmbHeaderType.Items6")});
|
|
||||||
resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType");
|
|
||||||
this.cmbHeaderType.Name = "cmbHeaderType";
|
|
||||||
//
|
|
||||||
// label8
|
// label8
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label8, "label8");
|
resources.ApplyResources(this.label8, "label8");
|
||||||
@@ -409,50 +186,17 @@
|
|||||||
resources.ApplyResources(this.panel1, "panel1");
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
//
|
//
|
||||||
// menuServer
|
// panel3
|
||||||
//
|
//
|
||||||
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.panel3.Controls.Add(this.transportControl);
|
||||||
this.MenuItem1});
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
resources.ApplyResources(this.menuServer, "menuServer");
|
this.panel3.Name = "panel3";
|
||||||
this.menuServer.Name = "menuServer";
|
|
||||||
//
|
//
|
||||||
// MenuItem1
|
// transportControl
|
||||||
//
|
//
|
||||||
this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.transportControl.AllowXtls = false;
|
||||||
this.MenuItemImportClient,
|
resources.ApplyResources(this.transportControl, "transportControl");
|
||||||
this.MenuItemImportServer,
|
this.transportControl.Name = "transportControl";
|
||||||
this.toolStripSeparator1,
|
|
||||||
this.MenuItemImportClipboard});
|
|
||||||
this.MenuItem1.Name = "MenuItem1";
|
|
||||||
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
|
||||||
//
|
|
||||||
// MenuItemImportClient
|
|
||||||
//
|
|
||||||
this.MenuItemImportClient.Name = "MenuItemImportClient";
|
|
||||||
resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient");
|
|
||||||
this.MenuItemImportClient.Click += new System.EventHandler(this.MenuItemImportClient_Click);
|
|
||||||
//
|
|
||||||
// MenuItemImportServer
|
|
||||||
//
|
|
||||||
this.MenuItemImportServer.Name = "MenuItemImportServer";
|
|
||||||
resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer");
|
|
||||||
this.MenuItemImportServer.Click += new System.EventHandler(this.MenuItemImportServer_Click);
|
|
||||||
//
|
|
||||||
// toolStripSeparator1
|
|
||||||
//
|
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
|
||||||
//
|
|
||||||
// MenuItemImportClipboard
|
|
||||||
//
|
|
||||||
this.MenuItemImportClipboard.Name = "MenuItemImportClipboard";
|
|
||||||
resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard");
|
|
||||||
this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click);
|
|
||||||
//
|
|
||||||
// label25
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label25, "label25");
|
|
||||||
this.label25.Name = "label25";
|
|
||||||
//
|
//
|
||||||
// AddServer5Form
|
// AddServer5Form
|
||||||
//
|
//
|
||||||
@@ -460,23 +204,17 @@
|
|||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.CancelButton = this.btnClose;
|
this.CancelButton = this.btnClose;
|
||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.menuServer);
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
this.Name = "AddServer5Form";
|
this.Name = "AddServer5Form";
|
||||||
this.Load += new System.EventHandler(this.AddServer5Form_Load);
|
this.Load += new System.EventHandler(this.AddServer5Form_Load);
|
||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.groupBox2.ResumeLayout(false);
|
|
||||||
this.groupBox2.PerformLayout();
|
|
||||||
this.panTlsMore.ResumeLayout(false);
|
|
||||||
this.panTlsMore.PerformLayout();
|
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.menuServer.ResumeLayout(false);
|
this.panel3.ResumeLayout(false);
|
||||||
this.menuServer.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -495,44 +233,14 @@
|
|||||||
private System.Windows.Forms.TextBox txtAddress;
|
private System.Windows.Forms.TextBox txtAddress;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
private System.Windows.Forms.ComboBox cmbSecurity;
|
private System.Windows.Forms.ComboBox cmbSecurity;
|
||||||
private System.Windows.Forms.ComboBox cmbNetwork;
|
|
||||||
private System.Windows.Forms.Label label7;
|
|
||||||
private System.Windows.Forms.Label label9;
|
|
||||||
private System.Windows.Forms.Label label8;
|
private System.Windows.Forms.Label label8;
|
||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.TextBox txtRequestHost;
|
|
||||||
private System.Windows.Forms.Label label10;
|
|
||||||
private System.Windows.Forms.Label label11;
|
|
||||||
private System.Windows.Forms.ComboBox cmbHeaderType;
|
|
||||||
private System.Windows.Forms.Label label12;
|
|
||||||
private System.Windows.Forms.GroupBox groupBox2;
|
|
||||||
private System.Windows.Forms.Label label13;
|
private System.Windows.Forms.Label label13;
|
||||||
private System.Windows.Forms.MenuStrip menuServer;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClient;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportServer;
|
|
||||||
private System.Windows.Forms.Label label15;
|
|
||||||
private System.Windows.Forms.ComboBox cmbStreamSecurity;
|
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClipboard;
|
|
||||||
private System.Windows.Forms.Button btnGUID;
|
private System.Windows.Forms.Button btnGUID;
|
||||||
private System.Windows.Forms.Label label16;
|
|
||||||
private System.Windows.Forms.Label label14;
|
|
||||||
private System.Windows.Forms.Label label17;
|
|
||||||
private System.Windows.Forms.Label label18;
|
|
||||||
private System.Windows.Forms.Label label19;
|
|
||||||
private System.Windows.Forms.TextBox txtPath;
|
|
||||||
private System.Windows.Forms.Label label20;
|
|
||||||
private System.Windows.Forms.Label label21;
|
|
||||||
private System.Windows.Forms.ComboBox cmbAllowInsecure;
|
|
||||||
private System.Windows.Forms.Panel panTlsMore;
|
|
||||||
private System.Windows.Forms.Label label24;
|
|
||||||
private System.Windows.Forms.Label label23;
|
|
||||||
private System.Windows.Forms.ComboBox cmbFlow;
|
private System.Windows.Forms.ComboBox cmbFlow;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
private System.Windows.Forms.TextBox txtSNI;
|
private System.Windows.Forms.Panel panel3;
|
||||||
private System.Windows.Forms.Label label22;
|
private ServerTransportControl transportControl;
|
||||||
private System.Windows.Forms.Label label25;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -15,6 +15,8 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void AddServer5Form_Load(object sender, EventArgs e)
|
private void AddServer5Form_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
cmbFlow.Items.AddRange(Global.xtlsFlows.ToArray());
|
||||||
|
transportControl.AllowXtls = true;
|
||||||
if (EditIndex >= 0)
|
if (EditIndex >= 0)
|
||||||
{
|
{
|
||||||
vmessItem = config.vmess[EditIndex];
|
vmessItem = config.vmess[EditIndex];
|
||||||
@@ -37,15 +39,9 @@ namespace v2rayN.Forms
|
|||||||
txtId.Text = vmessItem.id;
|
txtId.Text = vmessItem.id;
|
||||||
cmbFlow.Text = vmessItem.flow;
|
cmbFlow.Text = vmessItem.flow;
|
||||||
cmbSecurity.Text = vmessItem.security;
|
cmbSecurity.Text = vmessItem.security;
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
transportControl.BindingServer(vmessItem);
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
cmbAllowInsecure.Text = vmessItem.allowInsecure;
|
|
||||||
txtSNI.Text = vmessItem.sni;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -59,54 +55,9 @@ namespace v2rayN.Forms
|
|||||||
txtId.Text = "";
|
txtId.Text = "";
|
||||||
cmbFlow.Text = "";
|
cmbFlow.Text = "";
|
||||||
cmbSecurity.Text = Global.None;
|
cmbSecurity.Text = Global.None;
|
||||||
cmbNetwork.Text = Global.DefaultNetwork;
|
|
||||||
txtRemarks.Text = "";
|
txtRemarks.Text = "";
|
||||||
|
|
||||||
cmbHeaderType.Text = Global.None;
|
transportControl.ClearServer(vmessItem);
|
||||||
txtRequestHost.Text = "";
|
|
||||||
cmbStreamSecurity.Text = "";
|
|
||||||
cmbAllowInsecure.Text = "";
|
|
||||||
txtPath.Text = "";
|
|
||||||
txtSNI.Text = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void cmbNetwork_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
SetHeaderType();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 设置伪装选项
|
|
||||||
/// </summary>
|
|
||||||
private void SetHeaderType()
|
|
||||||
{
|
|
||||||
cmbHeaderType.Items.Clear();
|
|
||||||
|
|
||||||
string network = cmbNetwork.Text;
|
|
||||||
if (Utils.IsNullOrEmpty(network))
|
|
||||||
{
|
|
||||||
cmbHeaderType.Items.Add(Global.None);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cmbHeaderType.Items.Add(Global.None);
|
|
||||||
if (network.Equals(Global.DefaultNetwork))
|
|
||||||
{
|
|
||||||
cmbHeaderType.Items.Add(Global.TcpHeaderHttp);
|
|
||||||
}
|
|
||||||
else if (network.Equals("kcp") || network.Equals("quic"))
|
|
||||||
{
|
|
||||||
cmbHeaderType.Items.Add("srtp");
|
|
||||||
cmbHeaderType.Items.Add("utp");
|
|
||||||
cmbHeaderType.Items.Add("wechat-video");
|
|
||||||
cmbHeaderType.Items.Add("dtls");
|
|
||||||
cmbHeaderType.Items.Add("wireguard");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
}
|
|
||||||
cmbHeaderType.Text = Global.None;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnOK_Click(object sender, EventArgs e)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
@@ -116,16 +67,8 @@ namespace v2rayN.Forms
|
|||||||
string id = txtId.Text;
|
string id = txtId.Text;
|
||||||
string flow = cmbFlow.Text;
|
string flow = cmbFlow.Text;
|
||||||
string security = cmbSecurity.Text;
|
string security = cmbSecurity.Text;
|
||||||
string network = cmbNetwork.Text;
|
|
||||||
string remarks = txtRemarks.Text;
|
string remarks = txtRemarks.Text;
|
||||||
|
|
||||||
string headerType = cmbHeaderType.Text;
|
|
||||||
string requestHost = txtRequestHost.Text;
|
|
||||||
string path = txtPath.Text;
|
|
||||||
string streamSecurity = cmbStreamSecurity.Text;
|
|
||||||
string allowInsecure = cmbAllowInsecure.Text;
|
|
||||||
string sni = txtSNI.Text;
|
|
||||||
|
|
||||||
if (Utils.IsNullOrEmpty(address))
|
if (Utils.IsNullOrEmpty(address))
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("FillServerAddress"));
|
UI.Show(UIRes.I18N("FillServerAddress"));
|
||||||
@@ -142,22 +85,15 @@ namespace v2rayN.Forms
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transportControl.EndBindingServer();
|
||||||
|
|
||||||
vmessItem.address = address;
|
vmessItem.address = address;
|
||||||
vmessItem.port = Utils.ToInt(port);
|
vmessItem.port = Utils.ToInt(port);
|
||||||
vmessItem.id = id;
|
vmessItem.id = id;
|
||||||
vmessItem.flow = flow;
|
vmessItem.flow = flow;
|
||||||
vmessItem.security = security;
|
vmessItem.security = security;
|
||||||
vmessItem.network = network;
|
|
||||||
vmessItem.remarks = remarks;
|
vmessItem.remarks = remarks;
|
||||||
|
|
||||||
vmessItem.headerType = headerType;
|
|
||||||
vmessItem.requestHost = requestHost.Replace(" ", "");
|
|
||||||
vmessItem.path = path.Replace(" ", "");
|
|
||||||
vmessItem.streamSecurity = streamSecurity;
|
|
||||||
vmessItem.allowInsecure = allowInsecure;
|
|
||||||
vmessItem.sni = sni;
|
|
||||||
|
|
||||||
if (ConfigHandler.AddVlessServer(ref config, vmessItem, EditIndex) == 0)
|
if (ConfigHandler.AddVlessServer(ref config, vmessItem, EditIndex) == 0)
|
||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.OK;
|
this.DialogResult = DialogResult.OK;
|
||||||
@@ -177,114 +113,5 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
string security = cmbStreamSecurity.Text;
|
|
||||||
if (Utils.IsNullOrEmpty(security))
|
|
||||||
{
|
|
||||||
panTlsMore.Hide();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
panTlsMore.Show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region 导入客户端/服务端配置
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 导入客户端
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void MenuItemImportClient_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
MenuItemImport(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 导入服务端
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void MenuItemImportServer_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
MenuItemImport(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void MenuItemImport(int type)
|
|
||||||
{
|
|
||||||
ClearServer();
|
|
||||||
|
|
||||||
OpenFileDialog fileDialog = new OpenFileDialog
|
|
||||||
{
|
|
||||||
Multiselect = false,
|
|
||||||
Filter = "Config|*.json|All|*.*"
|
|
||||||
};
|
|
||||||
if (fileDialog.ShowDialog() != DialogResult.OK)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
string fileName = fileDialog.FileName;
|
|
||||||
if (Utils.IsNullOrEmpty(fileName))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
string msg;
|
|
||||||
VmessItem vmessItem;
|
|
||||||
if (type.Equals(1))
|
|
||||||
{
|
|
||||||
vmessItem = V2rayConfigHandler.ImportFromClientConfig(fileName, out msg);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
vmessItem = V2rayConfigHandler.ImportFromServerConfig(fileName, out msg);
|
|
||||||
}
|
|
||||||
if (vmessItem == null)
|
|
||||||
{
|
|
||||||
UI.ShowWarning(msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
|
||||||
txtId.Text = vmessItem.id;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 从剪贴板导入URL
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void MenuItemImportClipboard_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ClearServer();
|
|
||||||
|
|
||||||
VmessItem vmessItem = ShareHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg);
|
|
||||||
if (vmessItem == null)
|
|
||||||
{
|
|
||||||
UI.ShowWarning(msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
|
||||||
txtId.Text = vmessItem.id;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -136,126 +136,6 @@
|
|||||||
<data name="label13.Text" xml:space="preserve">
|
<data name="label13.Text" xml:space="preserve">
|
||||||
<value>*手填,方便识别管理</value>
|
<value>*手填,方便识别管理</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>149, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label24.Text" xml:space="preserve">
|
|
||||||
<value>3)QUIC 加密密钥/Kcp seed</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>95, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.Text" xml:space="preserve">
|
|
||||||
<value>4)QUIC 加密方式</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>167, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.Text" xml:space="preserve">
|
|
||||||
<value>跳过证书验证(allowInsecure)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>181, 7</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>353, 36</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>143, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.Text" xml:space="preserve">
|
|
||||||
<value>*默认tcp,选错会无法连接</value>
|
|
||||||
</data>
|
|
||||||
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>149, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label20.Text" xml:space="preserve">
|
|
||||||
<value>3)h2 host中间逗号(,)隔开</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtPath.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 168</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 32</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>220, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 36</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>107, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Text" xml:space="preserve">
|
|
||||||
<value>传输协议(network)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 168</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>65, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.Text" xml:space="preserve">
|
|
||||||
<value>路径(path)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>161, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.Text" xml:space="preserve">
|
|
||||||
<value>1)http host中间逗号(,)隔开</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 241</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>107, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Text" xml:space="preserve">
|
|
||||||
<value>底层传输安全(tls)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 237</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>282, 71</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>197, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.Text" xml:space="preserve">
|
|
||||||
<value>*tcp或kcp或QUIC伪装类型,默认none</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 102</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>334, 51</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 71</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>89, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.Text" xml:space="preserve">
|
|
||||||
<value>伪装类型(type)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 102</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>89, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Text" xml:space="preserve">
|
|
||||||
<value>伪装域名(host)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 67</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>底层传输方式(transport)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label8.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label8.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>353, 158</value>
|
<value>353, 158</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -307,37 +187,6 @@
|
|||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MenuItemImportClient.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>171, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItemImportClient.Text" xml:space="preserve">
|
|
||||||
<value>导入客户端配置</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItemImportServer.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>171, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItemImportServer.Text" xml:space="preserve">
|
|
||||||
<value>导入服务端配置</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>168, 6</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>171, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItemImportClipboard.Text" xml:space="preserve">
|
|
||||||
<value>从剪贴板导入URL</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="MenuItem1.Enabled" type="System.Boolean, mscorlib">
|
|
||||||
<value>False</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>92, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Text" xml:space="preserve">
|
|
||||||
<value>导入配置文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>编辑或添加[VLESS]服务器</value>
|
<value>编辑或添加[VLESS]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
75
v2rayN/v2rayN/Forms/AddServer6Form.Designer.cs
generated
75
v2rayN/v2rayN/Forms/AddServer6Form.Designer.cs
generated
@@ -31,12 +31,8 @@
|
|||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddServer6Form));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddServer6Form));
|
||||||
this.btnClose = new System.Windows.Forms.Button();
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
this.label21 = new System.Windows.Forms.Label();
|
this.cmbFlow = new System.Windows.Forms.ComboBox();
|
||||||
this.cmbAllowInsecure = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label15 = new System.Windows.Forms.Label();
|
|
||||||
this.cmbStreamSecurity = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
this.txtSNI = new System.Windows.Forms.TextBox();
|
|
||||||
this.label13 = new System.Windows.Forms.Label();
|
this.label13 = new System.Windows.Forms.Label();
|
||||||
this.txtRemarks = new System.Windows.Forms.TextBox();
|
this.txtRemarks = new System.Windows.Forms.TextBox();
|
||||||
this.label6 = new System.Windows.Forms.Label();
|
this.label6 = new System.Windows.Forms.Label();
|
||||||
@@ -46,10 +42,13 @@
|
|||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.txtAddress = new System.Windows.Forms.TextBox();
|
this.txtAddress = new System.Windows.Forms.TextBox();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.transportControl = new v2rayN.Forms.ServerTransportControl();
|
||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
@@ -63,12 +62,8 @@
|
|||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
this.groupBox1.Controls.Add(this.label21);
|
this.groupBox1.Controls.Add(this.cmbFlow);
|
||||||
this.groupBox1.Controls.Add(this.cmbAllowInsecure);
|
|
||||||
this.groupBox1.Controls.Add(this.label15);
|
|
||||||
this.groupBox1.Controls.Add(this.cmbStreamSecurity);
|
|
||||||
this.groupBox1.Controls.Add(this.label4);
|
this.groupBox1.Controls.Add(this.label4);
|
||||||
this.groupBox1.Controls.Add(this.txtSNI);
|
|
||||||
this.groupBox1.Controls.Add(this.label13);
|
this.groupBox1.Controls.Add(this.label13);
|
||||||
this.groupBox1.Controls.Add(this.txtRemarks);
|
this.groupBox1.Controls.Add(this.txtRemarks);
|
||||||
this.groupBox1.Controls.Add(this.label6);
|
this.groupBox1.Controls.Add(this.label6);
|
||||||
@@ -82,47 +77,17 @@
|
|||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
// label21
|
// cmbFlow
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label21, "label21");
|
this.cmbFlow.FormattingEnabled = true;
|
||||||
this.label21.Name = "label21";
|
resources.ApplyResources(this.cmbFlow, "cmbFlow");
|
||||||
//
|
this.cmbFlow.Name = "cmbFlow";
|
||||||
// cmbAllowInsecure
|
|
||||||
//
|
|
||||||
this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbAllowInsecure.FormattingEnabled = true;
|
|
||||||
this.cmbAllowInsecure.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbAllowInsecure.Items"),
|
|
||||||
resources.GetString("cmbAllowInsecure.Items1"),
|
|
||||||
resources.GetString("cmbAllowInsecure.Items2")});
|
|
||||||
resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure");
|
|
||||||
this.cmbAllowInsecure.Name = "cmbAllowInsecure";
|
|
||||||
//
|
|
||||||
// label15
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label15, "label15");
|
|
||||||
this.label15.Name = "label15";
|
|
||||||
//
|
|
||||||
// cmbStreamSecurity
|
|
||||||
//
|
|
||||||
this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbStreamSecurity.FormattingEnabled = true;
|
|
||||||
this.cmbStreamSecurity.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbStreamSecurity.Items"),
|
|
||||||
resources.GetString("cmbStreamSecurity.Items1")});
|
|
||||||
resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity");
|
|
||||||
this.cmbStreamSecurity.Name = "cmbStreamSecurity";
|
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label4, "label4");
|
resources.ApplyResources(this.label4, "label4");
|
||||||
this.label4.Name = "label4";
|
this.label4.Name = "label4";
|
||||||
//
|
//
|
||||||
// txtSNI
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtSNI, "txtSNI");
|
|
||||||
this.txtSNI.Name = "txtSNI";
|
|
||||||
//
|
|
||||||
// label13
|
// label13
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label13, "label13");
|
resources.ApplyResources(this.label13, "label13");
|
||||||
@@ -168,6 +133,18 @@
|
|||||||
resources.ApplyResources(this.label1, "label1");
|
resources.ApplyResources(this.label1, "label1");
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
//
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
this.panel3.Controls.Add(this.transportControl);
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// transportControl
|
||||||
|
//
|
||||||
|
this.transportControl.AllowXtls = false;
|
||||||
|
resources.ApplyResources(this.transportControl, "transportControl");
|
||||||
|
this.transportControl.Name = "transportControl";
|
||||||
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
this.panel2.Controls.Add(this.btnClose);
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
@@ -193,6 +170,7 @@
|
|||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.CancelButton = this.btnClose;
|
this.CancelButton = this.btnClose;
|
||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
@@ -201,6 +179,7 @@
|
|||||||
this.Load += new System.EventHandler(this.AddServer6Form_Load);
|
this.Load += new System.EventHandler(this.AddServer6Form_Load);
|
||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
@@ -222,11 +201,9 @@
|
|||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.Label label13;
|
private System.Windows.Forms.Label label13;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private ServerTransportControl transportControl;
|
||||||
|
private System.Windows.Forms.ComboBox cmbFlow;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
private System.Windows.Forms.TextBox txtSNI;
|
|
||||||
private System.Windows.Forms.Label label15;
|
|
||||||
private System.Windows.Forms.ComboBox cmbStreamSecurity;
|
|
||||||
private System.Windows.Forms.Label label21;
|
|
||||||
private System.Windows.Forms.ComboBox cmbAllowInsecure;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,6 +14,8 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void AddServer6Form_Load(object sender, EventArgs e)
|
private void AddServer6Form_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
cmbFlow.Items.AddRange(Global.xtlsFlows.ToArray());
|
||||||
|
transportControl.AllowXtls = true;
|
||||||
if (EditIndex >= 0)
|
if (EditIndex >= 0)
|
||||||
{
|
{
|
||||||
vmessItem = config.vmess[EditIndex];
|
vmessItem = config.vmess[EditIndex];
|
||||||
@@ -31,14 +33,13 @@ namespace v2rayN.Forms
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void BindingServer()
|
private void BindingServer()
|
||||||
{
|
{
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
txtAddress.Text = vmessItem.address;
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
txtPort.Text = vmessItem.port.ToString();
|
||||||
txtId.Text = vmessItem.id;
|
txtId.Text = vmessItem.id;
|
||||||
txtSNI.Text = vmessItem.sni;
|
cmbFlow.Text = vmessItem.flow;
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
cmbAllowInsecure.Text = vmessItem.allowInsecure;
|
transportControl.BindingServer(vmessItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -50,10 +51,10 @@ namespace v2rayN.Forms
|
|||||||
txtAddress.Text = "";
|
txtAddress.Text = "";
|
||||||
txtPort.Text = "";
|
txtPort.Text = "";
|
||||||
txtId.Text = "";
|
txtId.Text = "";
|
||||||
txtSNI.Text = "";
|
cmbFlow.Text = "";
|
||||||
txtRemarks.Text = "";
|
txtRemarks.Text = "";
|
||||||
cmbStreamSecurity.Text = "tls";
|
|
||||||
cmbAllowInsecure.Text = "";
|
transportControl.ClearServer(vmessItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnOK_Click(object sender, EventArgs e)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
@@ -61,10 +62,8 @@ namespace v2rayN.Forms
|
|||||||
string address = txtAddress.Text;
|
string address = txtAddress.Text;
|
||||||
string port = txtPort.Text;
|
string port = txtPort.Text;
|
||||||
string id = txtId.Text;
|
string id = txtId.Text;
|
||||||
string sni = txtSNI.Text;
|
string flow = cmbFlow.Text;
|
||||||
string remarks = txtRemarks.Text;
|
string remarks = txtRemarks.Text;
|
||||||
string streamSecurity = cmbStreamSecurity.Text;
|
|
||||||
string allowInsecure = cmbAllowInsecure.Text;
|
|
||||||
|
|
||||||
if (Utils.IsNullOrEmpty(address))
|
if (Utils.IsNullOrEmpty(address))
|
||||||
{
|
{
|
||||||
@@ -80,15 +79,15 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("FillPassword"));
|
UI.Show(UIRes.I18N("FillPassword"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transportControl.EndBindingServer();
|
||||||
|
|
||||||
vmessItem.address = address;
|
vmessItem.address = address;
|
||||||
vmessItem.port = Utils.ToInt(port);
|
vmessItem.port = Utils.ToInt(port);
|
||||||
vmessItem.id = id;
|
vmessItem.id = id;
|
||||||
vmessItem.sni = sni.Replace(" ", "");
|
vmessItem.flow = flow;
|
||||||
vmessItem.remarks = remarks;
|
vmessItem.remarks = remarks;
|
||||||
vmessItem.streamSecurity = streamSecurity;
|
|
||||||
vmessItem.allowInsecure = allowInsecure;
|
|
||||||
|
|
||||||
if (ConfigHandler.AddTrojanServer(ref config, vmessItem, EditIndex) == 0)
|
if (ConfigHandler.AddTrojanServer(ref config, vmessItem, EditIndex) == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -117,6 +117,10 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>396, 17</value>
|
<value>396, 17</value>
|
||||||
@@ -143,124 +147,27 @@
|
|||||||
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label21.AutoSize" type="System.Boolean, mscorlib">
|
<data name="cmbFlow.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>True</value>
|
<value>127, 123</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<data name="cmbFlow.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<data name="label21.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<value>211, 20</value>
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="label21.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbFlow.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>224, 189</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>83, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>33</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.Text" xml:space="preserve">
|
|
||||||
<value>allowInsecure</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label21.Name" xml:space="preserve">
|
|
||||||
<value>label21</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label21.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label21.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label21.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Items" xml:space="preserve">
|
|
||||||
<value />
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Items1" xml:space="preserve">
|
|
||||||
<value>true</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Items2" xml:space="preserve">
|
|
||||||
<value>false</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>312, 185</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>80, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>32</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbAllowInsecure.Name" xml:space="preserve">
|
|
||||||
<value>cmbAllowInsecure</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbAllowInsecure.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbAllowInsecure.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbAllowInsecure.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 189</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>23, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>26</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Text" xml:space="preserve">
|
|
||||||
<value>TLS</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label15.Name" xml:space="preserve">
|
|
||||||
<value>label15</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label15.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label15.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label15.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Items" xml:space="preserve">
|
|
||||||
<value>tls</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Items1" xml:space="preserve">
|
|
||||||
<value>xtls</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 185</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>60, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>25</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbStreamSecurity.Name" xml:space="preserve">
|
|
||||||
<value>cmbStreamSecurity</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbStreamSecurity.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbStreamSecurity.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbStreamSecurity.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>cmbFlow.Name" xml:space="preserve">
|
||||||
|
<value>cmbFlow</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -268,16 +175,16 @@
|
|||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 156</value>
|
<value>12, 127</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>23, 12</value>
|
<value>29, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>24</value>
|
<value>27</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Text" xml:space="preserve">
|
<data name="label4.Text" xml:space="preserve">
|
||||||
<value>SNI</value>
|
<value>Flow</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label4.Name" xml:space="preserve">
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
<value>label4</value>
|
<value>label4</value>
|
||||||
@@ -289,34 +196,16 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label4.ZOrder" xml:space="preserve">
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
<value>4</value>
|
<value>1</value>
|
||||||
</data>
|
|
||||||
<data name="txtSNI.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 152</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtSNI.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>359, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtSNI.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>23</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtSNI.Name" xml:space="preserve">
|
|
||||||
<value>txtSNI</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtSNI.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtSNI.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtSNI.ZOrder" xml:space="preserve">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label13.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>428, 124</value>
|
<value>428, 158</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>113, 12</value>
|
<value>113, 12</value>
|
||||||
@@ -337,16 +226,16 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label13.ZOrder" xml:space="preserve">
|
<data name=">>label13.ZOrder" xml:space="preserve">
|
||||||
<value>6</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 121</value>
|
<value>127, 155</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>265, 21</value>
|
<value>265, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>11</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
<value>txtRemarks</value>
|
<value>txtRemarks</value>
|
||||||
@@ -358,13 +247,16 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
<value>7</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label6.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 125</value>
|
<value>12, 159</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>95, 12</value>
|
<value>95, 12</value>
|
||||||
@@ -385,19 +277,16 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label6.ZOrder" xml:space="preserve">
|
<data name=">>label6.ZOrder" xml:space="preserve">
|
||||||
<value>8</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 91</value>
|
<value>127, 91</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.PasswordChar" type="System.Char, mscorlib" xml:space="preserve">
|
|
||||||
<value>*</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>265, 21</value>
|
<value>265, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>5</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtId.Name" xml:space="preserve">
|
<data name=">>txtId.Name" xml:space="preserve">
|
||||||
<value>txtId</value>
|
<value>txtId</value>
|
||||||
@@ -409,11 +298,14 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtId.ZOrder" xml:space="preserve">
|
<data name=">>txtId.ZOrder" xml:space="preserve">
|
||||||
<value>9</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 93</value>
|
<value>12, 93</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -436,7 +328,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
<value>10</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 59</value>
|
<value>127, 59</value>
|
||||||
@@ -445,7 +337,7 @@
|
|||||||
<value>194, 21</value>
|
<value>194, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.Name" xml:space="preserve">
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
<value>txtPort</value>
|
<value>txtPort</value>
|
||||||
@@ -457,11 +349,14 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
||||||
<value>11</value>
|
<value>7</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 62</value>
|
<value>12, 62</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -484,7 +379,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
<value>12</value>
|
<value>8</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 27</value>
|
<value>127, 27</value>
|
||||||
@@ -493,7 +388,7 @@
|
|||||||
<value>359, 21</value>
|
<value>359, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAddress.Name" xml:space="preserve">
|
<data name=">>txtAddress.Name" xml:space="preserve">
|
||||||
<value>txtAddress</value>
|
<value>txtAddress</value>
|
||||||
@@ -505,11 +400,14 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
||||||
<value>13</value>
|
<value>9</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 31</value>
|
<value>12, 31</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -532,7 +430,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
<value>14</value>
|
<value>10</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
@@ -541,7 +439,7 @@
|
|||||||
<value>0, 10</value>
|
<value>0, 10</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 221</value>
|
<value>707, 191</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
@@ -561,6 +459,57 @@
|
|||||||
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="transportControl.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>707, 230</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Name" xml:space="preserve">
|
||||||
|
<value>transportControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.ServerTransportControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 201</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>707, 230</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Name" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>303, 17</value>
|
<value>303, 17</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -589,10 +538,10 @@
|
|||||||
<value>Bottom</value>
|
<value>Bottom</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 231</value>
|
<value>0, 431</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 60</value>
|
<value>707, 60</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>7</value>
|
<value>7</value>
|
||||||
@@ -607,7 +556,7 @@
|
|||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>panel2.ZOrder" xml:space="preserve">
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Top</value>
|
<value>Top</value>
|
||||||
@@ -616,7 +565,7 @@
|
|||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 10</value>
|
<value>707, 10</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>6</value>
|
<value>6</value>
|
||||||
@@ -631,7 +580,7 @@
|
|||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>panel1.ZOrder" xml:space="preserve">
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
<value>2</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -640,7 +589,180 @@
|
|||||||
<value>6, 12</value>
|
<value>6, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 291</value>
|
<value>707, 491</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
|
||||||
|
CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA
|
||||||
|
/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIoiI
|
||||||
|
iIiIiIiIiIiIiIiIiIiCIigiIiIozMzMzMzMyCIogiIoIiIiKM7m5ubm5sgiKIIiKCIiIijObm5ubm7I
|
||||||
|
IiiCIigiIiIozubm5ubmyCIogiIoIiIiKM5ubm5ubsgiKIIiKCIiIijO5ubm5ubIIiiIiIiIiIiIzm5u
|
||||||
|
bm5uyCIogRERERERGM7u7u7u7sgiKIHZWVlZWRjMzMzMzMzIIiiB1ZWVlZUYiIiIiIiIiIiIgdlZWVlZ
|
||||||
|
GDMzMzMzMzMzOIHVlZWVlRg/uLi4uLi4uDiB2VlZWVkYP7uLi4uLi4s4gdWVlZWVGD+4uLi4uLi4OIHZ
|
||||||
|
WVlZWRg/u4uLi4uLiziB1ZWVlZUYP7i4uLi4uLg4gdlZWVlZGD+7i4uLi4uLOIHVlZWVlRg/uLi4uLi4
|
||||||
|
uDiB3d3d3d0YP7uLi4uLi4s4gRERERERGD+4uLi4uLi4OIiIiIiIiIg/u4uLi4uLiziCIiIiIiIoP7i4
|
||||||
|
uLi4uLg4giIiIiIiKD+7i4uLi4uLOIIiIiIiIig/uLi4uLi4uDiCIiIiIiIoP7u7u7u7u7s4giIiIiIi
|
||||||
|
KD//////////OIIiIiIiIigzMzMzMzMzMziIiIiIiIiIiIiIiIiIiIiIIiIiIiIiIiIiIiIiIiIiIv//
|
||||||
|
////////AAAAAHv4AA57+AAOe/gADnv4AA57+AAOe/gADgAAAA4AAAAOAAAADgAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAB/+AAAf/gAAH/4AAB/+AAAf/gAAAAA
|
||||||
|
AAD/////KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACA
|
||||||
|
gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIoiI
|
||||||
|
iIiIiIiIgigijMzMyCiCKCKM5mbIKIiIiIzu7sgogRERjMzMyCiB2ZGIiIiIiIHZkYMzMzM4gdmRg/u7
|
||||||
|
uziB3dGD+7u7OIEREYP7u7s4iIiIg/u7uziCIiKD+7u7OIIiIoP///84giIigzMzMziIiIiIiIiIiP//
|
||||||
|
KCIAACjObALm5mwCIigAAoiIAAKIzgAAbm4AACIoAAAREQAAGM4AAO7uAAAiKHwAWVl8ABjMfADMzAAA
|
||||||
|
IigoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA
|
||||||
|
AACAAIAAgIAAAICAgADA3MAA8MqmAKo/KgD/PyoAAF8qAFVfKgCqXyoA/18qAAB/KgBVfyoAqn8qAP9/
|
||||||
|
KgAAnyoAVZ8qAKqfKgD/nyoAAL8qAFW/KgCqvyoA/78qAADfKgBV3yoAqt8qAP/fKgAA/yoAVf8qAKr/
|
||||||
|
KgD//yoAAABVAFUAVQCqAFUA/wBVAAAfVQBVH1UAqh9VAP8fVQAAP1UAVT9VAKo/VQD/P1UAAF9VAFVf
|
||||||
|
VQCqX1UA/19VAAB/VQBVf1UAqn9VAP9/VQAAn1UAVZ9VAKqfVQD/n1UAAL9VAFW/VQCqv1UA/79VAADf
|
||||||
|
VQBV31UAqt9VAP/fVQAA/1UAVf9VAKr/VQD//1UAAAB/AFUAfwCqAH8A/wB/AAAffwBVH38Aqh9/AP8f
|
||||||
|
fwAAP38AVT9/AKo/fwD/P38AAF9/AFVffwCqX38A/19/AAB/fwBVf38Aqn9/AP9/fwAAn38AVZ9/AKqf
|
||||||
|
fwD/n38AAL9/AFW/fwCqv38A/79/AADffwBV338Aqt9/AP/ffwAA/38AVf9/AKr/fwD//38AAACqAFUA
|
||||||
|
qgCqAKoA/wCqAAAfqgBVH6oAqh+qAP8fqgAAP6oAVT+qAKo/qgD/P6oAAF+qAFVfqgCqX6oA/1+qAAB/
|
||||||
|
qgBVf6oAqn+qAP9/qgAAn6oAVZ+qAKqfqgD/n6oAAL+qAFW/qgCqv6oA/7+qAADfqgBV36oAqt+qAP/f
|
||||||
|
qgAA/6oAVf+qAKr/qgD//6oAAADUAFUA1ACqANQA/wDUAAAf1ABVH9QAqh/UAP8f1AAAP9QAVT/UAKo/
|
||||||
|
1AD/P9QAAF/UAFVf1ACqX9QA/1/UAAB/1ABVf9QAqn/UAP9/1AAAn9QAVZ/UAKqf1AD/n9QAAL/UAFW/
|
||||||
|
1ACqv9QA/7/UAADf1ABV39QAqt/UAP/f1AAA/9QAVf/UAKr/1AD//9QAVQD/AKoA/wAAH/8AVR//AKof
|
||||||
|
/wD/H/8AAD//AFU//wCqP/8A/z//AABf/wBVX/8Aql//AP9f/wAAf/8AVX//AKp//wD/f/8AAJ//AFWf
|
||||||
|
/wCqn/8A/5//AAC//wBVv/8Aqr//AP+//wAA3/8AVd//AKrf/wD/3/8AVf//AKr//wD/zMwA/8z/AP//
|
||||||
|
MwD//2YA//+ZAP//zAAAfwAAVX8AAKp/AAD/fwAAAJ8AAFWfAACqnwAA/58AAAC/AABVvwAAqr8AAP+/
|
||||||
|
AAAA3wAAVd8AAKrfAAD/3wAAVf8AAKr/AAAAACoAVQAqAKoAKgD/ACoAAB8qAFUfKgCqHyoA/x8qAAA/
|
||||||
|
KgBVPyoA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAAAAAAD//wAA////AP39/f39/f39/f39/f39
|
||||||
|
/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
|
||||||
|
/f39/f39/f39/f39/f39/f39/f39/f39qoYIqoYIhqoIqgiqCaoIqgiqhqqGhoYIhoYIqv39/f0I/f39
|
||||||
|
/ar9/f39/YY2Ng4yDg4ODgoOCgoKCgqG/f39/Yb9/f39CP39/f39qjY7Ozs3Nzc3NjMSMjIOCqr9/f39
|
||||||
|
qv39/f2G/f39/f0IN19fOzs3Nzc3NjcODg4KCP39/f0I/f39/ar9/f39/ao6X19fXzs7Ozc3NzY3NgqG
|
||||||
|
/f39/Yb9/f39CP39/f39hl9jY19jX187Ozs7Nzc3Dqr9/f39qv39/f2G/f39/f0IOodjh19jX19fXztf
|
||||||
|
OzcOCP39/f0ICAmqCAiqCKoICapfCYdjh2ODY19fXzs7Ow6q/f39/QhITEwoSCUoKSQoqmMJCYcJCWNj
|
||||||
|
Y2NfY19fNgj9/f39qkyZmZmYmJRwlCmqX19fXl9fX186WzY3Njc2gv39/f0JcJ2dmZmZlJmUJAmqCaoJ
|
||||||
|
hggIqggICKoIqggI/f39/YZwnp2dnZmZmJVMqnx8fHx8fFR8VHhUVFRUVKr9/f39CHChoZ2dnZ2ZmUwJ
|
||||||
|
fKSkxqSkxqSkpKSkpKBUCP39/f2qcKLDoqGdnZ2ZTKp8ysakxqSkxqSkxqSkpFSq/f39/QiUpqbDoqHE
|
||||||
|
nZ1Mq3ykqMakyqSkxqSkpKSkVAj9/f39hpTIyKbHoqGhoXAIfMrLpMqkxqSkxqTGpKRUqv39/f0IlMym
|
||||||
|
yKbIpcShcAh8y6jKpMqkxsqkpKSkxlQI/f39/aqUzMzMyKbIpqJwqnzLy8qpxsqkpMakxqSkeAj9/f39
|
||||||
|
CJSUlJSUlJSUlJQJgMupy8qpysqkyqSkxqRUqv39/f2GCKoIqgiqCKoIhgigrcvPqcuoy8qkxsqkxnyG
|
||||||
|
/f39/ar9/f39/f39/f39qnzPz6nLy8uoyqnKpKTKVAj9/f39CP39/f39/f39/f0IfNDPz8+py8upyqjG
|
||||||
|
yqR8hv39/f2G/f39/f39/f39/Qik0K7P0M+ty8vLy6jKpXyq/f39/ar9/f39/f39/f39CHzQ09Ctz8/P
|
||||||
|
qcupy6jKeAj9/f39CP39/f39/f39/f2qoNPQ0NPQ0M/Qz8vLy6l8CP39/f2G/f39/f39/f39/QmkfKR8
|
||||||
|
oHx8fHx8fHx8fHyG/f39/aoIqgiqCKoIqgiqCKoIqgiqCKoIqgiqCKoIqgj9/f39/f39/f39/f39/f39
|
||||||
|
/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3/////////////
|
||||||
|
///AAAAD3vgAA974AAPe+AAD3vgAA974AAPe+AADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
|
||||||
|
AAPAAAADwAAAA8AAAAPAAAADwAAAA9/4AAPf+AAD3/gAA9/4AAPf+AAD3/gAA8AAAAP//////////ygA
|
||||||
|
AAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA
|
||||||
|
gACAgAAAgICAAMDcwADwyqYAqj8qAP8/KgAAXyoAVV8qAKpfKgD/XyoAAH8qAFV/KgCqfyoA/38qAACf
|
||||||
|
KgBVnyoAqp8qAP+fKgAAvyoAVb8qAKq/KgD/vyoAAN8qAFXfKgCq3yoA/98qAAD/KgBV/yoAqv8qAP//
|
||||||
|
KgAAAFUAVQBVAKoAVQD/AFUAAB9VAFUfVQCqH1UA/x9VAAA/VQBVP1UAqj9VAP8/VQAAX1UAVV9VAKpf
|
||||||
|
VQD/X1UAAH9VAFV/VQCqf1UA/39VAACfVQBVn1UAqp9VAP+fVQAAv1UAVb9VAKq/VQD/v1UAAN9VAFXf
|
||||||
|
VQCq31UA/99VAAD/VQBV/1UAqv9VAP//VQAAAH8AVQB/AKoAfwD/AH8AAB9/AFUffwCqH38A/x9/AAA/
|
||||||
|
fwBVP38Aqj9/AP8/fwAAX38AVV9/AKpffwD/X38AAH9/AFV/fwCqf38A/39/AACffwBVn38Aqp9/AP+f
|
||||||
|
fwAAv38AVb9/AKq/fwD/v38AAN9/AFXffwCq338A/99/AAD/fwBV/38Aqv9/AP//fwAAAKoAVQCqAKoA
|
||||||
|
qgD/AKoAAB+qAFUfqgCqH6oA/x+qAAA/qgBVP6oAqj+qAP8/qgAAX6oAVV+qAKpfqgD/X6oAAH+qAFV/
|
||||||
|
qgCqf6oA/3+qAACfqgBVn6oAqp+qAP+fqgAAv6oAVb+qAKq/qgD/v6oAAN+qAFXfqgCq36oA/9+qAAD/
|
||||||
|
qgBV/6oAqv+qAP//qgAAANQAVQDUAKoA1AD/ANQAAB/UAFUf1ACqH9QA/x/UAAA/1ABVP9QAqj/UAP8/
|
||||||
|
1AAAX9QAVV/UAKpf1AD/X9QAAH/UAFV/1ACqf9QA/3/UAACf1ABVn9QAqp/UAP+f1AAAv9QAVb/UAKq/
|
||||||
|
1AD/v9QAAN/UAFXf1ACq39QA/9/UAAD/1ABV/9QAqv/UAP//1ABVAP8AqgD/AAAf/wBVH/8Aqh//AP8f
|
||||||
|
/wAAP/8AVT//AKo//wD/P/8AAF//AFVf/wCqX/8A/1//AAB//wBVf/8Aqn//AP9//wAAn/8AVZ//AKqf
|
||||||
|
/wD/n/8AAL//AFW//wCqv/8A/7//AADf/wBV3/8Aqt//AP/f/wBV//8Aqv//AP/MzAD/zP8A//8zAP//
|
||||||
|
ZgD//5kA///MAAB/AABVfwAAqn8AAP9/AAAAnwAAVZ8AAKqfAAD/nwAAAL8AAFW/AACqvwAA/78AAADf
|
||||||
|
AABV3wAAqt8AAP/fAABV/wAAqv8AAAAAKgBVACoAqgAqAP8AKgAAHyoAVR8qAKofKgD/HyoAAD8qAFU/
|
||||||
|
KgDw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAAAAAAAP//AAD///8A/f39/f39/f39/f39/f39/f0I
|
||||||
|
hgiqCKoICKoICKaGCP39qv39hv2GNg4ODjII/ar9/Yb9/ar9qjdjXzsOCP2G/f0IhquGCAleCWNfNob9
|
||||||
|
qv39qkxMTEgIX19fX18I/Qj9/QhwnZlMqoYIqggIqgiG/f2qcKadcAl8fFQDVFQDqv39CHDMpnCqfMvL
|
||||||
|
ysrKVAj9/QiUlHBwCYDPy8/LylSG/f2GqoYIqgig0M/Py8t8qv39CP39/f2GpNDQ0M/PfAn9/ar9/f39
|
||||||
|
qqT20NDQ0Hyq/f2G/f39/QmkpKSloKR8CP39CKoIhgiqCIYIqgiGCKr9/f39/f39/f39/f39/f39/f//
|
||||||
|
hv2AAf0ItAX9/bQFX2OABWNfgAU7O4ABNzeAAf39gAGq/YAB/YaAAf39vAE6h7wBX2O8AV9fgAE7N///
|
||||||
|
/f0oAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAADCv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAwr/B/7Z3Sf+zckT/rm0//6toO/+nYjb/pF4y/6BZLv+dVCr/mlEn/5dNI/+VSiH/kkce/5FE
|
||||||
|
HP+RRBz/kUUb/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAADCv8H/v4JS//+aZv//lWD/+5Bc//WLV//uh1P/54FO/997S//Wdkb/zXBD/8Vr
|
||||||
|
QP+9Zj3/tGI5/65dN/+RRRz/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/AAAAAAAAAAAAAAAAAAAAAMK/
|
||||||
|
wf8AAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf/GjFv//6Rz//+fbf//m2f//5Zh//yRXf/3jVj/8IhV/+mD
|
||||||
|
UP/hfUz/2HhI/9ByRP/HbED/v2c9/5VJIf/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAA
|
||||||
|
AAAAAAAAwr/B/wAAAAAAAAAAAAAAAAAAAAAAAAAAwr/B/86WZP//r4L//6p7//+mdf//oW7//5xo//+X
|
||||||
|
Yv/9kl7/+I5a//KJVf/rhFH/4n5N/9t4SP/Sc0X/mlEm/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAA
|
||||||
|
AAAAAAAAAAAAAAAAAADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAADCv8H/1J9s//+4kf//tIv//6+E//+r
|
||||||
|
ff//p3f//6Jw//+eav//mWT//pRf//qQWv/0i1b/7IVS/+V/Tv+gWC7/wr/B/wAAAAAAAAAAAAAAAAAA
|
||||||
|
AADCv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf/apnP//7+d//+7
|
||||||
|
mP//uJL//7WM//+whv//rH///6d4//+jcf//n2v//5ll//+VYP/6kVv/9YxY/6diN//Cv8H/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAMK/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/96t
|
||||||
|
eP//wqL//8Gi//+/nv//vJn//7mT//+2jv//sYj//66A//+pev//pHP//6Bt//+bZ///l2L/r20//8K/
|
||||||
|
wf8AAAAAAAAAAAAAAAAAAAAAwr/B/xYXev8XF3b/GBVx/xkUbf8ZFGr/GhNm/xoSY/8bEV//HBFd/xwQ
|
||||||
|
W//Cv8H/4K96///Cov//wqL//8Ki///Cov//wJ///72b//+6lf//t4///7KJ//+ugv//qnv//6V0//+h
|
||||||
|
bv+3d0n/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/FRqE/0dN1v8/RNL/Nz3Q/y40zv8nLcz/ISfK/xwh
|
||||||
|
yf8WHMf/GxJh/8K/wf/gr3r/4K96/+Cvev/gr3r/3614/9yqdf/apnL/16Nw/9Sea//Rmmj/zZZk/8qR
|
||||||
|
X//GjFz/w4dW/7+CUv/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8SHZD/WF3a/05U1/9FS9X/PUPS/zU7
|
||||||
|
0P8uM83/JyzL/yAmyf8aFGn/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/xAfnP9obt7/YGTc/1Zb
|
||||||
|
2f9NU9f/RUrU/ztB0v80OdD/LDHO/xgWcv/Cv8H/Dn+n/w18pP8MeqH/DHie/wt1m/8Kc5j/CXGV/wlv
|
||||||
|
k/8JbJD/CGqN/wdpi/8HZ4j/BmWH/wZkhf8GYoP/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/DiKp/3l+
|
||||||
|
4/9vdeH/Zmze/11i2/9UWtn/S1HW/0NI1P86P9H/Fhh9/8K/wf8Ogar/Barp/wGo6P8Apef/AKPm/wCi
|
||||||
|
5P8An+L/AJ7h/wCd3/8AnN7/AJnc/wCY2/8AmNn/AJbX/wZjhP/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/
|
||||||
|
wf8MJbX/iI7n/4CF5v93fOP/bnPg/2Vr3f9bYdv/UljY/0lP1v8UGoj/wr/B/w+Erf8Lrur/Bqvq/wOo
|
||||||
|
6f8Apuf/AKTm/wCi5f8AoOT/AJ/i/wCd4f8AnN//AJrd/wCZ2/8AmNr/BmWH/8K/wf8AAAAAAAAAAAAA
|
||||||
|
AAAAAAAAwr/B/wkowP+WnOz/jpTq/4aL6P9+hOX/dXri/2xx4P9jaN3/WV/b/xEek//Cv8H/EIaw/xay
|
||||||
|
7P8Or+z/Cavr/wWq6v8Bp+j/AKbn/wCj5f8AoeT/AJ/j/wCe4f8AnOD/AJve/wCa3f8HZ4n/wr/B/wAA
|
||||||
|
AAAAAAAAAAAAAAAAAADCv8H/CCrK/6Ko7/+coe7/lZrr/42T6f+Fiub/fIHl/3N54v9rcN//ECGg/8K/
|
||||||
|
wf8QiLP/I7nu/xq07f8Ssez/C63r/war6v8Cqen/AKbo/wCk5v8AouX/AKHk/wCf4f8AneH/AJzf/who
|
||||||
|
i//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8GLNP/q7Hy/6as8P+hpu//mp/u/5OY6/+LkOj/g4nm/3qA
|
||||||
|
5P8NI6z/wr/B/xCKtv8xvvD/J7rv/x627f8Vsuz/Dq/s/wmr6/8Equn/Aafo/wCl5/8Ao+X/AKHk/wCf
|
||||||
|
4v8AnuH/CGqO/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wUu2/+vtPP/r7Tz/6qv8v+mq/D/oKXv/5me
|
||||||
|
7f+Sl+v/io/p/wsmt//Cv8H/Eo24/0HF8f82wfD/LLzv/yK47v8atO3/EbHs/wut6/8Gq+r/A6np/wCm
|
||||||
|
6P8Apeb/AKLl/wCh5P8IbJD/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/BC/h/wQv3/8FL9z/BS3Z/wYt
|
||||||
|
1v8GLNL/ByvP/wgqy/8IKcb/CSnC/8K/wf8Sjrv/Uszy/0fH8f87w/H/Mb7v/ye67/8et+7/FbPt/w6v
|
||||||
|
6/8IrOv/BKnp/wGo6P8Apef/AKPl/wluk//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/xKRvf9j0/P/WM/z/0zK8f9BxfH/N8Hw/yy8
|
||||||
|
7/8iuO7/GbTt/xGx7P8Lruv/Bqrq/wOo6f8Apuf/CnGV/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCv8H/E5LA/3Ta8/9q1fP/XtHz/1LM
|
||||||
|
8v9Hx/H/O8Pw/zG+7/8nu+//Hrbt/xay7f8Or+v/CKzq/wSq6f8Kc5j/wr/B/wAAAAAAAAAAAAAAAAAA
|
||||||
|
AADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf8UlMH/hOD1/3rc
|
||||||
|
9f9v2PP/ZNTy/1jO8v9NyvH/Qsbx/zbB8P8svO//I7ju/xm07f8SsOz/C67r/wt2m//Cv8H/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwr/B/xSW
|
||||||
|
w/+T5vb/iuL1/3/e9P912vT/adbz/13R8/9SzPL/R8jx/zzD8P8xvvD/J7rv/x627v8Vsuz/C3ie/8K/
|
||||||
|
wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AADCv8H/FJbG/57r9/+X6Pb/juT1/4Th9f963fX/b9j0/2PT8/9Yz/L/TMrx/0HF8f83wO//LLzv/yK4
|
||||||
|
7v8MeqH/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAMK/wf8VmMf/qO/3/6Lt9/+b6vb/kub2/4rj9f9/3vX/dNrz/2rV8/9d0fP/Uszy/0fI
|
||||||
|
8f88w/D/Mr7v/w19pP/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAwr/B/xWZyP8UmMf/FZfF/xSVw/8TlML/E5K//xOQvf8Sjrv/EYy4/xGK
|
||||||
|
tv8QiLL/D4Ww/w+Erf8Pgar/Dn+n/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
|
||||||
|
/////////////8AAAAPe+AAD3vgAA974AAPe+AAD3vgAA974AAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
|
||||||
|
AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAAD3/gAA9/4AAPf+AAD3/gAA9/4AAPf+AADwAAAA///
|
||||||
|
////////KAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDA/8DA
|
||||||
|
wP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP8AAAAAAAAAAMDA
|
||||||
|
wP8AAAAAAAAAAMDAwP8AAAAAwMDA/8F2R/+9bj//umc6/7diNf+3YjX/wMDA/wAAAADAwMD/AAAAAAAA
|
||||||
|
AADAwMD/AAAAAAAAAADAwMD/AAAAAMDAwP/RkmD//7aP//+ldP/8kl3/vW0//8DAwP8AAAAAwMDA/wAA
|
||||||
|
AAAAAAAAwMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/3ap2///Cov//to7//6V0/8uJWP/AwMD/AAAAAMDA
|
||||||
|
wP8AAAAAAAAAAMDAwP8THI7/FBqF/xYYfP8XFnP/wMDA/+Cvev/gr3r/4K96/92qdv/ao3D/wMDA/wAA
|
||||||
|
AADAwMD/AAAAAAAAAADAwMD/ECCd/2Fn3P8zOc//FRmC/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DA
|
||||||
|
wP/AwMD/wMDA/wAAAAAAAAAAwMDA/w0krP+Pler/YWbd/xIcj//AwMD/DHmf/wpzmP8Ib5L/B2uO/wdq
|
||||||
|
jf8Gao3/B2qN/8DAwP8AAAAAAAAAAMDAwP8KJrv/r7Tz/5CU6v8PIJ//wMDA/w+Dq/87y/z/Kcb8/xrD
|
||||||
|
/P8QwPv/EMD7/wdqjf/AwMD/AAAAAAAAAADAwMD/CCrI/woowP8LJrf/DSSu/8DAwP8Sjbj/Zdb9/0/Q
|
||||||
|
/P88y/v/Kcf7/xrC+/8IbZD/wMDA/wAAAAAAAAAAwMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/FpfG/43h
|
||||||
|
/f962/3/Zdb8/0/Q/P87zPz/CXSZ/8DAwP8AAAAAAAAAAMDAwP8AAAAAAAAAAAAAAAAAAAAAwMDA/xif
|
||||||
|
z/+u6f7/n+X9/47h/f953P3/ZNb9/w19pP/AwMD/AAAAAAAAAADAwMD/AAAAAAAAAAAAAAAAAAAAAMDA
|
||||||
|
wP8apNX/uez+/7ns/v+u6f7/oOX9/43h/f8Rh7H/wMDA/wAAAAAAAAAAwMDA/wAAAAAAAAAAAAAAAAAA
|
||||||
|
AADAwMD/GqTV/xqk1f8apNX/GaHR/xecy/8WmMb/FJK+/8DAwP8AAAAAAAAAAMDAwP/AwMD/wMDA/8DA
|
||||||
|
wP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/AAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAgAEAALQF
|
||||||
|
wf+0BQAAgAUAAIAFAACAAQAAgAHB/4ABAACAAQAAgAEAALwBAAC8AQAAvAHB/4ABbP///5H/
|
||||||
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>Edit or add a [Trojan] server</value>
|
<value>Edit or add a [Trojan] server</value>
|
||||||
|
|||||||
@@ -121,24 +121,11 @@
|
|||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>167, 12</value>
|
<value>65, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label21.Text" xml:space="preserve">
|
<data name="label4.Text" xml:space="preserve">
|
||||||
<value>跳过证书验证(allowInsecure)</value>
|
<value>流控(flow)</value>
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>406, 185</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>107, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Text" xml:space="preserve">
|
|
||||||
<value>底层传输安全(tls)</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="cmbStreamSecurity.Enabled" type="System.Boolean, mscorlib">
|
|
||||||
<value>False</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="label13.Text" xml:space="preserve">
|
<data name="label13.Text" xml:space="preserve">
|
||||||
<value>*手填,方便识别管理</value>
|
<value>*手填,方便识别管理</value>
|
||||||
@@ -173,6 +160,179 @@
|
|||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
|
||||||
|
CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA
|
||||||
|
/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIoiI
|
||||||
|
iIiIiIiIiIiIiIiIiIiCIigiIiIozMzMzMzMyCIogiIoIiIiKM7m5ubm5sgiKIIiKCIiIijObm5ubm7I
|
||||||
|
IiiCIigiIiIozubm5ubmyCIogiIoIiIiKM5ubm5ubsgiKIIiKCIiIijO5ubm5ubIIiiIiIiIiIiIzm5u
|
||||||
|
bm5uyCIogRERERERGM7u7u7u7sgiKIHZWVlZWRjMzMzMzMzIIiiB1ZWVlZUYiIiIiIiIiIiIgdlZWVlZ
|
||||||
|
GDMzMzMzMzMzOIHVlZWVlRg/uLi4uLi4uDiB2VlZWVkYP7uLi4uLi4s4gdWVlZWVGD+4uLi4uLi4OIHZ
|
||||||
|
WVlZWRg/u4uLi4uLiziB1ZWVlZUYP7i4uLi4uLg4gdlZWVlZGD+7i4uLi4uLOIHVlZWVlRg/uLi4uLi4
|
||||||
|
uDiB3d3d3d0YP7uLi4uLi4s4gRERERERGD+4uLi4uLi4OIiIiIiIiIg/u4uLi4uLiziCIiIiIiIoP7i4
|
||||||
|
uLi4uLg4giIiIiIiKD+7i4uLi4uLOIIiIiIiIig/uLi4uLi4uDiCIiIiIiIoP7u7u7u7u7s4giIiIiIi
|
||||||
|
KD//////////OIIiIiIiIigzMzMzMzMzMziIiIiIiIiIiIiIiIiIiIiIIiIiIiIiIiIiIiIiIiIiIv//
|
||||||
|
////////AAAAAHv4AA57+AAOe/gADnv4AA57+AAOe/gADgAAAA4AAAAOAAAADgAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAB/+AAAf/gAAH/4AAB/+AAAf/gAAAAA
|
||||||
|
AAD/////KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACA
|
||||||
|
gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIoiI
|
||||||
|
iIiIiIiIgigijMzMyCiCKCKM5mbIKIiIiIzu7sgogRERjMzMyCiB2ZGIiIiIiIHZkYMzMzM4gdmRg/u7
|
||||||
|
uziB3dGD+7u7OIEREYP7u7s4iIiIg/u7uziCIiKD+7u7OIIiIoP///84giIigzMzMziIiIiIiIiIiP//
|
||||||
|
KCIAACjObALm5mwCIigAAoiIAAKIzgAAbm4AACIoAAAREQAAGM4AAO7uAAAiKHwAWVl8ABjMfADMzAAA
|
||||||
|
IigoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA
|
||||||
|
AACAAIAAgIAAAICAgADA3MAA8MqmAKo/KgD/PyoAAF8qAFVfKgCqXyoA/18qAAB/KgBVfyoAqn8qAP9/
|
||||||
|
KgAAnyoAVZ8qAKqfKgD/nyoAAL8qAFW/KgCqvyoA/78qAADfKgBV3yoAqt8qAP/fKgAA/yoAVf8qAKr/
|
||||||
|
KgD//yoAAABVAFUAVQCqAFUA/wBVAAAfVQBVH1UAqh9VAP8fVQAAP1UAVT9VAKo/VQD/P1UAAF9VAFVf
|
||||||
|
VQCqX1UA/19VAAB/VQBVf1UAqn9VAP9/VQAAn1UAVZ9VAKqfVQD/n1UAAL9VAFW/VQCqv1UA/79VAADf
|
||||||
|
VQBV31UAqt9VAP/fVQAA/1UAVf9VAKr/VQD//1UAAAB/AFUAfwCqAH8A/wB/AAAffwBVH38Aqh9/AP8f
|
||||||
|
fwAAP38AVT9/AKo/fwD/P38AAF9/AFVffwCqX38A/19/AAB/fwBVf38Aqn9/AP9/fwAAn38AVZ9/AKqf
|
||||||
|
fwD/n38AAL9/AFW/fwCqv38A/79/AADffwBV338Aqt9/AP/ffwAA/38AVf9/AKr/fwD//38AAACqAFUA
|
||||||
|
qgCqAKoA/wCqAAAfqgBVH6oAqh+qAP8fqgAAP6oAVT+qAKo/qgD/P6oAAF+qAFVfqgCqX6oA/1+qAAB/
|
||||||
|
qgBVf6oAqn+qAP9/qgAAn6oAVZ+qAKqfqgD/n6oAAL+qAFW/qgCqv6oA/7+qAADfqgBV36oAqt+qAP/f
|
||||||
|
qgAA/6oAVf+qAKr/qgD//6oAAADUAFUA1ACqANQA/wDUAAAf1ABVH9QAqh/UAP8f1AAAP9QAVT/UAKo/
|
||||||
|
1AD/P9QAAF/UAFVf1ACqX9QA/1/UAAB/1ABVf9QAqn/UAP9/1AAAn9QAVZ/UAKqf1AD/n9QAAL/UAFW/
|
||||||
|
1ACqv9QA/7/UAADf1ABV39QAqt/UAP/f1AAA/9QAVf/UAKr/1AD//9QAVQD/AKoA/wAAH/8AVR//AKof
|
||||||
|
/wD/H/8AAD//AFU//wCqP/8A/z//AABf/wBVX/8Aql//AP9f/wAAf/8AVX//AKp//wD/f/8AAJ//AFWf
|
||||||
|
/wCqn/8A/5//AAC//wBVv/8Aqr//AP+//wAA3/8AVd//AKrf/wD/3/8AVf//AKr//wD/zMwA/8z/AP//
|
||||||
|
MwD//2YA//+ZAP//zAAAfwAAVX8AAKp/AAD/fwAAAJ8AAFWfAACqnwAA/58AAAC/AABVvwAAqr8AAP+/
|
||||||
|
AAAA3wAAVd8AAKrfAAD/3wAAVf8AAKr/AAAAACoAVQAqAKoAKgD/ACoAAB8qAFUfKgCqHyoA/x8qAAA/
|
||||||
|
KgBVPyoA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAAAAAAD//wAA////AP39/f39/f39/f39/f39
|
||||||
|
/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
|
||||||
|
/f39/f39/f39/f39/f39/f39/f39/f39qoYIqoYIhqoIqgiqCaoIqgiqhqqGhoYIhoYIqv39/f0I/f39
|
||||||
|
/ar9/f39/YY2Ng4yDg4ODgoOCgoKCgqG/f39/Yb9/f39CP39/f39qjY7Ozs3Nzc3NjMSMjIOCqr9/f39
|
||||||
|
qv39/f2G/f39/f0IN19fOzs3Nzc3NjcODg4KCP39/f0I/f39/ar9/f39/ao6X19fXzs7Ozc3NzY3NgqG
|
||||||
|
/f39/Yb9/f39CP39/f39hl9jY19jX187Ozs7Nzc3Dqr9/f39qv39/f2G/f39/f0IOodjh19jX19fXztf
|
||||||
|
OzcOCP39/f0ICAmqCAiqCKoICapfCYdjh2ODY19fXzs7Ow6q/f39/QhITEwoSCUoKSQoqmMJCYcJCWNj
|
||||||
|
Y2NfY19fNgj9/f39qkyZmZmYmJRwlCmqX19fXl9fX186WzY3Njc2gv39/f0JcJ2dmZmZlJmUJAmqCaoJ
|
||||||
|
hggIqggICKoIqggI/f39/YZwnp2dnZmZmJVMqnx8fHx8fFR8VHhUVFRUVKr9/f39CHChoZ2dnZ2ZmUwJ
|
||||||
|
fKSkxqSkxqSkpKSkpKBUCP39/f2qcKLDoqGdnZ2ZTKp8ysakxqSkxqSkxqSkpFSq/f39/QiUpqbDoqHE
|
||||||
|
nZ1Mq3ykqMakyqSkxqSkpKSkVAj9/f39hpTIyKbHoqGhoXAIfMrLpMqkxqSkxqTGpKRUqv39/f0IlMym
|
||||||
|
yKbIpcShcAh8y6jKpMqkxsqkpKSkxlQI/f39/aqUzMzMyKbIpqJwqnzLy8qpxsqkpMakxqSkeAj9/f39
|
||||||
|
CJSUlJSUlJSUlJQJgMupy8qpysqkyqSkxqRUqv39/f2GCKoIqgiqCKoIhgigrcvPqcuoy8qkxsqkxnyG
|
||||||
|
/f39/ar9/f39/f39/f39qnzPz6nLy8uoyqnKpKTKVAj9/f39CP39/f39/f39/f0IfNDPz8+py8upyqjG
|
||||||
|
yqR8hv39/f2G/f39/f39/f39/Qik0K7P0M+ty8vLy6jKpXyq/f39/ar9/f39/f39/f39CHzQ09Ctz8/P
|
||||||
|
qcupy6jKeAj9/f39CP39/f39/f39/f2qoNPQ0NPQ0M/Qz8vLy6l8CP39/f2G/f39/f39/f39/QmkfKR8
|
||||||
|
oHx8fHx8fHx8fHyG/f39/aoIqgiqCKoIqgiqCKoIqgiqCKoIqgiqCKoIqgj9/f39/f39/f39/f39/f39
|
||||||
|
/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3/////////////
|
||||||
|
///AAAAD3vgAA974AAPe+AAD3vgAA974AAPe+AADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
|
||||||
|
AAPAAAADwAAAA8AAAAPAAAADwAAAA9/4AAPf+AAD3/gAA9/4AAPf+AAD3/gAA8AAAAP//////////ygA
|
||||||
|
AAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA
|
||||||
|
gACAgAAAgICAAMDcwADwyqYAqj8qAP8/KgAAXyoAVV8qAKpfKgD/XyoAAH8qAFV/KgCqfyoA/38qAACf
|
||||||
|
KgBVnyoAqp8qAP+fKgAAvyoAVb8qAKq/KgD/vyoAAN8qAFXfKgCq3yoA/98qAAD/KgBV/yoAqv8qAP//
|
||||||
|
KgAAAFUAVQBVAKoAVQD/AFUAAB9VAFUfVQCqH1UA/x9VAAA/VQBVP1UAqj9VAP8/VQAAX1UAVV9VAKpf
|
||||||
|
VQD/X1UAAH9VAFV/VQCqf1UA/39VAACfVQBVn1UAqp9VAP+fVQAAv1UAVb9VAKq/VQD/v1UAAN9VAFXf
|
||||||
|
VQCq31UA/99VAAD/VQBV/1UAqv9VAP//VQAAAH8AVQB/AKoAfwD/AH8AAB9/AFUffwCqH38A/x9/AAA/
|
||||||
|
fwBVP38Aqj9/AP8/fwAAX38AVV9/AKpffwD/X38AAH9/AFV/fwCqf38A/39/AACffwBVn38Aqp9/AP+f
|
||||||
|
fwAAv38AVb9/AKq/fwD/v38AAN9/AFXffwCq338A/99/AAD/fwBV/38Aqv9/AP//fwAAAKoAVQCqAKoA
|
||||||
|
qgD/AKoAAB+qAFUfqgCqH6oA/x+qAAA/qgBVP6oAqj+qAP8/qgAAX6oAVV+qAKpfqgD/X6oAAH+qAFV/
|
||||||
|
qgCqf6oA/3+qAACfqgBVn6oAqp+qAP+fqgAAv6oAVb+qAKq/qgD/v6oAAN+qAFXfqgCq36oA/9+qAAD/
|
||||||
|
qgBV/6oAqv+qAP//qgAAANQAVQDUAKoA1AD/ANQAAB/UAFUf1ACqH9QA/x/UAAA/1ABVP9QAqj/UAP8/
|
||||||
|
1AAAX9QAVV/UAKpf1AD/X9QAAH/UAFV/1ACqf9QA/3/UAACf1ABVn9QAqp/UAP+f1AAAv9QAVb/UAKq/
|
||||||
|
1AD/v9QAAN/UAFXf1ACq39QA/9/UAAD/1ABV/9QAqv/UAP//1ABVAP8AqgD/AAAf/wBVH/8Aqh//AP8f
|
||||||
|
/wAAP/8AVT//AKo//wD/P/8AAF//AFVf/wCqX/8A/1//AAB//wBVf/8Aqn//AP9//wAAn/8AVZ//AKqf
|
||||||
|
/wD/n/8AAL//AFW//wCqv/8A/7//AADf/wBV3/8Aqt//AP/f/wBV//8Aqv//AP/MzAD/zP8A//8zAP//
|
||||||
|
ZgD//5kA///MAAB/AABVfwAAqn8AAP9/AAAAnwAAVZ8AAKqfAAD/nwAAAL8AAFW/AACqvwAA/78AAADf
|
||||||
|
AABV3wAAqt8AAP/fAABV/wAAqv8AAAAAKgBVACoAqgAqAP8AKgAAHyoAVR8qAKofKgD/HyoAAD8qAFU/
|
||||||
|
KgDw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAAAAAAAP//AAD///8A/f39/f39/f39/f39/f39/f0I
|
||||||
|
hgiqCKoICKoICKaGCP39qv39hv2GNg4ODjII/ar9/Yb9/ar9qjdjXzsOCP2G/f0IhquGCAleCWNfNob9
|
||||||
|
qv39qkxMTEgIX19fX18I/Qj9/QhwnZlMqoYIqggIqgiG/f2qcKadcAl8fFQDVFQDqv39CHDMpnCqfMvL
|
||||||
|
ysrKVAj9/QiUlHBwCYDPy8/LylSG/f2GqoYIqgig0M/Py8t8qv39CP39/f2GpNDQ0M/PfAn9/ar9/f39
|
||||||
|
qqT20NDQ0Hyq/f2G/f39/QmkpKSloKR8CP39CKoIhgiqCIYIqgiGCKr9/f39/f39/f39/f39/f39/f//
|
||||||
|
hv2AAf0ItAX9/bQFX2OABWNfgAU7O4ABNzeAAf39gAGq/YAB/YaAAf39vAE6h7wBX2O8AV9fgAE7N///
|
||||||
|
/f0oAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAADCv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAwr/B/7Z3Sf+zckT/rm0//6toO/+nYjb/pF4y/6BZLv+dVCr/mlEn/5dNI/+VSiH/kkce/5FE
|
||||||
|
HP+RRBz/kUUb/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAADCv8H/v4JS//+aZv//lWD/+5Bc//WLV//uh1P/54FO/997S//Wdkb/zXBD/8Vr
|
||||||
|
QP+9Zj3/tGI5/65dN/+RRRz/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/AAAAAAAAAAAAAAAAAAAAAMK/
|
||||||
|
wf8AAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf/GjFv//6Rz//+fbf//m2f//5Zh//yRXf/3jVj/8IhV/+mD
|
||||||
|
UP/hfUz/2HhI/9ByRP/HbED/v2c9/5VJIf/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAA
|
||||||
|
AAAAAAAAwr/B/wAAAAAAAAAAAAAAAAAAAAAAAAAAwr/B/86WZP//r4L//6p7//+mdf//oW7//5xo//+X
|
||||||
|
Yv/9kl7/+I5a//KJVf/rhFH/4n5N/9t4SP/Sc0X/mlEm/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAA
|
||||||
|
AAAAAAAAAAAAAAAAAADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAADCv8H/1J9s//+4kf//tIv//6+E//+r
|
||||||
|
ff//p3f//6Jw//+eav//mWT//pRf//qQWv/0i1b/7IVS/+V/Tv+gWC7/wr/B/wAAAAAAAAAAAAAAAAAA
|
||||||
|
AADCv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf/apnP//7+d//+7
|
||||||
|
mP//uJL//7WM//+whv//rH///6d4//+jcf//n2v//5ll//+VYP/6kVv/9YxY/6diN//Cv8H/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAMK/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/96t
|
||||||
|
eP//wqL//8Gi//+/nv//vJn//7mT//+2jv//sYj//66A//+pev//pHP//6Bt//+bZ///l2L/r20//8K/
|
||||||
|
wf8AAAAAAAAAAAAAAAAAAAAAwr/B/xYXev8XF3b/GBVx/xkUbf8ZFGr/GhNm/xoSY/8bEV//HBFd/xwQ
|
||||||
|
W//Cv8H/4K96///Cov//wqL//8Ki///Cov//wJ///72b//+6lf//t4///7KJ//+ugv//qnv//6V0//+h
|
||||||
|
bv+3d0n/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/FRqE/0dN1v8/RNL/Nz3Q/y40zv8nLcz/ISfK/xwh
|
||||||
|
yf8WHMf/GxJh/8K/wf/gr3r/4K96/+Cvev/gr3r/3614/9yqdf/apnL/16Nw/9Sea//Rmmj/zZZk/8qR
|
||||||
|
X//GjFz/w4dW/7+CUv/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8SHZD/WF3a/05U1/9FS9X/PUPS/zU7
|
||||||
|
0P8uM83/JyzL/yAmyf8aFGn/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/xAfnP9obt7/YGTc/1Zb
|
||||||
|
2f9NU9f/RUrU/ztB0v80OdD/LDHO/xgWcv/Cv8H/Dn+n/w18pP8MeqH/DHie/wt1m/8Kc5j/CXGV/wlv
|
||||||
|
k/8JbJD/CGqN/wdpi/8HZ4j/BmWH/wZkhf8GYoP/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/DiKp/3l+
|
||||||
|
4/9vdeH/Zmze/11i2/9UWtn/S1HW/0NI1P86P9H/Fhh9/8K/wf8Ogar/Barp/wGo6P8Apef/AKPm/wCi
|
||||||
|
5P8An+L/AJ7h/wCd3/8AnN7/AJnc/wCY2/8AmNn/AJbX/wZjhP/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/
|
||||||
|
wf8MJbX/iI7n/4CF5v93fOP/bnPg/2Vr3f9bYdv/UljY/0lP1v8UGoj/wr/B/w+Erf8Lrur/Bqvq/wOo
|
||||||
|
6f8Apuf/AKTm/wCi5f8AoOT/AJ/i/wCd4f8AnN//AJrd/wCZ2/8AmNr/BmWH/8K/wf8AAAAAAAAAAAAA
|
||||||
|
AAAAAAAAwr/B/wkowP+WnOz/jpTq/4aL6P9+hOX/dXri/2xx4P9jaN3/WV/b/xEek//Cv8H/EIaw/xay
|
||||||
|
7P8Or+z/Cavr/wWq6v8Bp+j/AKbn/wCj5f8AoeT/AJ/j/wCe4f8AnOD/AJve/wCa3f8HZ4n/wr/B/wAA
|
||||||
|
AAAAAAAAAAAAAAAAAADCv8H/CCrK/6Ko7/+coe7/lZrr/42T6f+Fiub/fIHl/3N54v9rcN//ECGg/8K/
|
||||||
|
wf8QiLP/I7nu/xq07f8Ssez/C63r/war6v8Cqen/AKbo/wCk5v8AouX/AKHk/wCf4f8AneH/AJzf/who
|
||||||
|
i//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8GLNP/q7Hy/6as8P+hpu//mp/u/5OY6/+LkOj/g4nm/3qA
|
||||||
|
5P8NI6z/wr/B/xCKtv8xvvD/J7rv/x627f8Vsuz/Dq/s/wmr6/8Equn/Aafo/wCl5/8Ao+X/AKHk/wCf
|
||||||
|
4v8AnuH/CGqO/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wUu2/+vtPP/r7Tz/6qv8v+mq/D/oKXv/5me
|
||||||
|
7f+Sl+v/io/p/wsmt//Cv8H/Eo24/0HF8f82wfD/LLzv/yK47v8atO3/EbHs/wut6/8Gq+r/A6np/wCm
|
||||||
|
6P8Apeb/AKLl/wCh5P8IbJD/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/BC/h/wQv3/8FL9z/BS3Z/wYt
|
||||||
|
1v8GLNL/ByvP/wgqy/8IKcb/CSnC/8K/wf8Sjrv/Uszy/0fH8f87w/H/Mb7v/ye67/8et+7/FbPt/w6v
|
||||||
|
6/8IrOv/BKnp/wGo6P8Apef/AKPl/wluk//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/xKRvf9j0/P/WM/z/0zK8f9BxfH/N8Hw/yy8
|
||||||
|
7/8iuO7/GbTt/xGx7P8Lruv/Bqrq/wOo6f8Apuf/CnGV/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCv8H/E5LA/3Ta8/9q1fP/XtHz/1LM
|
||||||
|
8v9Hx/H/O8Pw/zG+7/8nu+//Hrbt/xay7f8Or+v/CKzq/wSq6f8Kc5j/wr/B/wAAAAAAAAAAAAAAAAAA
|
||||||
|
AADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf8UlMH/hOD1/3rc
|
||||||
|
9f9v2PP/ZNTy/1jO8v9NyvH/Qsbx/zbB8P8svO//I7ju/xm07f8SsOz/C67r/wt2m//Cv8H/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwr/B/xSW
|
||||||
|
w/+T5vb/iuL1/3/e9P912vT/adbz/13R8/9SzPL/R8jx/zzD8P8xvvD/J7rv/x627v8Vsuz/C3ie/8K/
|
||||||
|
wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AADCv8H/FJbG/57r9/+X6Pb/juT1/4Th9f963fX/b9j0/2PT8/9Yz/L/TMrx/0HF8f83wO//LLzv/yK4
|
||||||
|
7v8MeqH/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAMK/wf8VmMf/qO/3/6Lt9/+b6vb/kub2/4rj9f9/3vX/dNrz/2rV8/9d0fP/Uszy/0fI
|
||||||
|
8f88w/D/Mr7v/w19pP/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAwr/B/xWZyP8UmMf/FZfF/xSVw/8TlML/E5K//xOQvf8Sjrv/EYy4/xGK
|
||||||
|
tv8QiLL/D4Ww/w+Erf8Pgar/Dn+n/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
|
||||||
|
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
|
||||||
|
/////////////8AAAAPe+AAD3vgAA974AAPe+AAD3vgAA974AAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
|
||||||
|
AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAAD3/gAA9/4AAPf+AAD3/gAA9/4AAPf+AADwAAAA///
|
||||||
|
////////KAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDA/8DA
|
||||||
|
wP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP8AAAAAAAAAAMDA
|
||||||
|
wP8AAAAAAAAAAMDAwP8AAAAAwMDA/8F2R/+9bj//umc6/7diNf+3YjX/wMDA/wAAAADAwMD/AAAAAAAA
|
||||||
|
AADAwMD/AAAAAAAAAADAwMD/AAAAAMDAwP/RkmD//7aP//+ldP/8kl3/vW0//8DAwP8AAAAAwMDA/wAA
|
||||||
|
AAAAAAAAwMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/3ap2///Cov//to7//6V0/8uJWP/AwMD/AAAAAMDA
|
||||||
|
wP8AAAAAAAAAAMDAwP8THI7/FBqF/xYYfP8XFnP/wMDA/+Cvev/gr3r/4K96/92qdv/ao3D/wMDA/wAA
|
||||||
|
AADAwMD/AAAAAAAAAADAwMD/ECCd/2Fn3P8zOc//FRmC/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DA
|
||||||
|
wP/AwMD/wMDA/wAAAAAAAAAAwMDA/w0krP+Pler/YWbd/xIcj//AwMD/DHmf/wpzmP8Ib5L/B2uO/wdq
|
||||||
|
jf8Gao3/B2qN/8DAwP8AAAAAAAAAAMDAwP8KJrv/r7Tz/5CU6v8PIJ//wMDA/w+Dq/87y/z/Kcb8/xrD
|
||||||
|
/P8QwPv/EMD7/wdqjf/AwMD/AAAAAAAAAADAwMD/CCrI/woowP8LJrf/DSSu/8DAwP8Sjbj/Zdb9/0/Q
|
||||||
|
/P88y/v/Kcf7/xrC+/8IbZD/wMDA/wAAAAAAAAAAwMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/FpfG/43h
|
||||||
|
/f962/3/Zdb8/0/Q/P87zPz/CXSZ/8DAwP8AAAAAAAAAAMDAwP8AAAAAAAAAAAAAAAAAAAAAwMDA/xif
|
||||||
|
z/+u6f7/n+X9/47h/f953P3/ZNb9/w19pP/AwMD/AAAAAAAAAADAwMD/AAAAAAAAAAAAAAAAAAAAAMDA
|
||||||
|
wP8apNX/uez+/7ns/v+u6f7/oOX9/43h/f8Rh7H/wMDA/wAAAAAAAAAAwMDA/wAAAAAAAAAAAAAAAAAA
|
||||||
|
AADAwMD/GqTV/xqk1f8apNX/GaHR/xecy/8WmMb/FJK+/8DAwP8AAAAAAAAAAMDAwP/AwMD/wMDA/8DA
|
||||||
|
wP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/AAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAgAEAALQF
|
||||||
|
wf+0BQAAgAUAAIAFAACAAQAAgAHB/4ABAACAAQAAgAEAALwBAAC8AQAAvAHB/4ABbP///5H/
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>编辑或添加[Trojan]服务器</value>
|
<value>编辑或添加[Trojan]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
272
v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
generated
272
v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
generated
@@ -33,32 +33,6 @@
|
|||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
this.btnGUID = new System.Windows.Forms.Button();
|
this.btnGUID = new System.Windows.Forms.Button();
|
||||||
this.label13 = new System.Windows.Forms.Label();
|
this.label13 = new System.Windows.Forms.Label();
|
||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
|
||||||
this.label25 = new System.Windows.Forms.Label();
|
|
||||||
this.label24 = new System.Windows.Forms.Label();
|
|
||||||
this.label23 = new System.Windows.Forms.Label();
|
|
||||||
this.panTlsMore = new System.Windows.Forms.Panel();
|
|
||||||
this.txtSNI = new System.Windows.Forms.TextBox();
|
|
||||||
this.label22 = new System.Windows.Forms.Label();
|
|
||||||
this.label21 = new System.Windows.Forms.Label();
|
|
||||||
this.cmbAllowInsecure = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label9 = new System.Windows.Forms.Label();
|
|
||||||
this.label20 = new System.Windows.Forms.Label();
|
|
||||||
this.txtPath = new System.Windows.Forms.TextBox();
|
|
||||||
this.cmbNetwork = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label7 = new System.Windows.Forms.Label();
|
|
||||||
this.label19 = new System.Windows.Forms.Label();
|
|
||||||
this.label18 = new System.Windows.Forms.Label();
|
|
||||||
this.label17 = new System.Windows.Forms.Label();
|
|
||||||
this.label16 = new System.Windows.Forms.Label();
|
|
||||||
this.label14 = new System.Windows.Forms.Label();
|
|
||||||
this.label15 = new System.Windows.Forms.Label();
|
|
||||||
this.cmbStreamSecurity = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label12 = new System.Windows.Forms.Label();
|
|
||||||
this.txtRequestHost = new System.Windows.Forms.TextBox();
|
|
||||||
this.label11 = new System.Windows.Forms.Label();
|
|
||||||
this.label10 = new System.Windows.Forms.Label();
|
|
||||||
this.cmbHeaderType = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label8 = new System.Windows.Forms.Label();
|
this.label8 = new System.Windows.Forms.Label();
|
||||||
this.cmbSecurity = new System.Windows.Forms.ComboBox();
|
this.cmbSecurity = new System.Windows.Forms.ComboBox();
|
||||||
this.txtRemarks = new System.Windows.Forms.TextBox();
|
this.txtRemarks = new System.Windows.Forms.TextBox();
|
||||||
@@ -81,11 +55,12 @@
|
|||||||
this.MenuItemImportServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.MenuItemImportServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.MenuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
this.MenuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.transportControl = new v2rayN.Forms.ServerTransportControl();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
|
||||||
this.panTlsMore.SuspendLayout();
|
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.menuServer.SuspendLayout();
|
this.menuServer.SuspendLayout();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
@@ -100,7 +75,6 @@
|
|||||||
//
|
//
|
||||||
this.groupBox1.Controls.Add(this.btnGUID);
|
this.groupBox1.Controls.Add(this.btnGUID);
|
||||||
this.groupBox1.Controls.Add(this.label13);
|
this.groupBox1.Controls.Add(this.label13);
|
||||||
this.groupBox1.Controls.Add(this.groupBox2);
|
|
||||||
this.groupBox1.Controls.Add(this.label8);
|
this.groupBox1.Controls.Add(this.label8);
|
||||||
this.groupBox1.Controls.Add(this.cmbSecurity);
|
this.groupBox1.Controls.Add(this.cmbSecurity);
|
||||||
this.groupBox1.Controls.Add(this.txtRemarks);
|
this.groupBox1.Controls.Add(this.txtRemarks);
|
||||||
@@ -130,194 +104,6 @@
|
|||||||
resources.ApplyResources(this.label13, "label13");
|
resources.ApplyResources(this.label13, "label13");
|
||||||
this.label13.Name = "label13";
|
this.label13.Name = "label13";
|
||||||
//
|
//
|
||||||
// groupBox2
|
|
||||||
//
|
|
||||||
this.groupBox2.Controls.Add(this.label25);
|
|
||||||
this.groupBox2.Controls.Add(this.label24);
|
|
||||||
this.groupBox2.Controls.Add(this.label23);
|
|
||||||
this.groupBox2.Controls.Add(this.panTlsMore);
|
|
||||||
this.groupBox2.Controls.Add(this.label9);
|
|
||||||
this.groupBox2.Controls.Add(this.label20);
|
|
||||||
this.groupBox2.Controls.Add(this.txtPath);
|
|
||||||
this.groupBox2.Controls.Add(this.cmbNetwork);
|
|
||||||
this.groupBox2.Controls.Add(this.label7);
|
|
||||||
this.groupBox2.Controls.Add(this.label19);
|
|
||||||
this.groupBox2.Controls.Add(this.label18);
|
|
||||||
this.groupBox2.Controls.Add(this.label17);
|
|
||||||
this.groupBox2.Controls.Add(this.label16);
|
|
||||||
this.groupBox2.Controls.Add(this.label14);
|
|
||||||
this.groupBox2.Controls.Add(this.label15);
|
|
||||||
this.groupBox2.Controls.Add(this.cmbStreamSecurity);
|
|
||||||
this.groupBox2.Controls.Add(this.label12);
|
|
||||||
this.groupBox2.Controls.Add(this.txtRequestHost);
|
|
||||||
this.groupBox2.Controls.Add(this.label11);
|
|
||||||
this.groupBox2.Controls.Add(this.label10);
|
|
||||||
this.groupBox2.Controls.Add(this.cmbHeaderType);
|
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
|
||||||
this.groupBox2.Name = "groupBox2";
|
|
||||||
this.groupBox2.TabStop = false;
|
|
||||||
//
|
|
||||||
// label25
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label25, "label25");
|
|
||||||
this.label25.Name = "label25";
|
|
||||||
//
|
|
||||||
// label24
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label24, "label24");
|
|
||||||
this.label24.Name = "label24";
|
|
||||||
//
|
|
||||||
// label23
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label23, "label23");
|
|
||||||
this.label23.Name = "label23";
|
|
||||||
//
|
|
||||||
// panTlsMore
|
|
||||||
//
|
|
||||||
this.panTlsMore.Controls.Add(this.txtSNI);
|
|
||||||
this.panTlsMore.Controls.Add(this.label22);
|
|
||||||
this.panTlsMore.Controls.Add(this.label21);
|
|
||||||
this.panTlsMore.Controls.Add(this.cmbAllowInsecure);
|
|
||||||
resources.ApplyResources(this.panTlsMore, "panTlsMore");
|
|
||||||
this.panTlsMore.Name = "panTlsMore";
|
|
||||||
//
|
|
||||||
// txtSNI
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtSNI, "txtSNI");
|
|
||||||
this.txtSNI.Name = "txtSNI";
|
|
||||||
//
|
|
||||||
// label22
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label22, "label22");
|
|
||||||
this.label22.Name = "label22";
|
|
||||||
//
|
|
||||||
// label21
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label21, "label21");
|
|
||||||
this.label21.Name = "label21";
|
|
||||||
//
|
|
||||||
// cmbAllowInsecure
|
|
||||||
//
|
|
||||||
this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbAllowInsecure.FormattingEnabled = true;
|
|
||||||
this.cmbAllowInsecure.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbAllowInsecure.Items"),
|
|
||||||
resources.GetString("cmbAllowInsecure.Items1"),
|
|
||||||
resources.GetString("cmbAllowInsecure.Items2")});
|
|
||||||
resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure");
|
|
||||||
this.cmbAllowInsecure.Name = "cmbAllowInsecure";
|
|
||||||
//
|
|
||||||
// label9
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label9, "label9");
|
|
||||||
this.label9.Name = "label9";
|
|
||||||
//
|
|
||||||
// label20
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label20, "label20");
|
|
||||||
this.label20.Name = "label20";
|
|
||||||
//
|
|
||||||
// txtPath
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtPath, "txtPath");
|
|
||||||
this.txtPath.Name = "txtPath";
|
|
||||||
//
|
|
||||||
// cmbNetwork
|
|
||||||
//
|
|
||||||
this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbNetwork.FormattingEnabled = true;
|
|
||||||
this.cmbNetwork.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbNetwork.Items"),
|
|
||||||
resources.GetString("cmbNetwork.Items1"),
|
|
||||||
resources.GetString("cmbNetwork.Items2"),
|
|
||||||
resources.GetString("cmbNetwork.Items3"),
|
|
||||||
resources.GetString("cmbNetwork.Items4"),
|
|
||||||
resources.GetString("cmbNetwork.Items5")});
|
|
||||||
resources.ApplyResources(this.cmbNetwork, "cmbNetwork");
|
|
||||||
this.cmbNetwork.Name = "cmbNetwork";
|
|
||||||
this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged);
|
|
||||||
//
|
|
||||||
// label7
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label7, "label7");
|
|
||||||
this.label7.Name = "label7";
|
|
||||||
//
|
|
||||||
// label19
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label19, "label19");
|
|
||||||
this.label19.Name = "label19";
|
|
||||||
//
|
|
||||||
// label18
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label18, "label18");
|
|
||||||
this.label18.Name = "label18";
|
|
||||||
//
|
|
||||||
// label17
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label17, "label17");
|
|
||||||
this.label17.Name = "label17";
|
|
||||||
//
|
|
||||||
// label16
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label16, "label16");
|
|
||||||
this.label16.Name = "label16";
|
|
||||||
//
|
|
||||||
// label14
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label14, "label14");
|
|
||||||
this.label14.Name = "label14";
|
|
||||||
//
|
|
||||||
// label15
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label15, "label15");
|
|
||||||
this.label15.Name = "label15";
|
|
||||||
//
|
|
||||||
// cmbStreamSecurity
|
|
||||||
//
|
|
||||||
this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbStreamSecurity.FormattingEnabled = true;
|
|
||||||
this.cmbStreamSecurity.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbStreamSecurity.Items"),
|
|
||||||
resources.GetString("cmbStreamSecurity.Items1")});
|
|
||||||
resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity");
|
|
||||||
this.cmbStreamSecurity.Name = "cmbStreamSecurity";
|
|
||||||
this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged);
|
|
||||||
//
|
|
||||||
// label12
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label12, "label12");
|
|
||||||
this.label12.Name = "label12";
|
|
||||||
//
|
|
||||||
// txtRequestHost
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtRequestHost, "txtRequestHost");
|
|
||||||
this.txtRequestHost.Name = "txtRequestHost";
|
|
||||||
//
|
|
||||||
// label11
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label11, "label11");
|
|
||||||
this.label11.Name = "label11";
|
|
||||||
//
|
|
||||||
// label10
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label10, "label10");
|
|
||||||
this.label10.Name = "label10";
|
|
||||||
//
|
|
||||||
// cmbHeaderType
|
|
||||||
//
|
|
||||||
this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbHeaderType.FormattingEnabled = true;
|
|
||||||
this.cmbHeaderType.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbHeaderType.Items"),
|
|
||||||
resources.GetString("cmbHeaderType.Items1"),
|
|
||||||
resources.GetString("cmbHeaderType.Items2"),
|
|
||||||
resources.GetString("cmbHeaderType.Items3"),
|
|
||||||
resources.GetString("cmbHeaderType.Items4"),
|
|
||||||
resources.GetString("cmbHeaderType.Items5"),
|
|
||||||
resources.GetString("cmbHeaderType.Items6")});
|
|
||||||
resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType");
|
|
||||||
this.cmbHeaderType.Name = "cmbHeaderType";
|
|
||||||
//
|
|
||||||
// label8
|
// label8
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label8, "label8");
|
resources.ApplyResources(this.label8, "label8");
|
||||||
@@ -327,12 +113,6 @@
|
|||||||
//
|
//
|
||||||
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbSecurity.FormattingEnabled = true;
|
this.cmbSecurity.FormattingEnabled = true;
|
||||||
this.cmbSecurity.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbSecurity.Items"),
|
|
||||||
resources.GetString("cmbSecurity.Items1"),
|
|
||||||
resources.GetString("cmbSecurity.Items2"),
|
|
||||||
resources.GetString("cmbSecurity.Items3"),
|
|
||||||
resources.GetString("cmbSecurity.Items4")});
|
|
||||||
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
||||||
this.cmbSecurity.Name = "cmbSecurity";
|
this.cmbSecurity.Name = "cmbSecurity";
|
||||||
//
|
//
|
||||||
@@ -450,12 +230,25 @@
|
|||||||
resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard");
|
resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard");
|
||||||
this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click);
|
this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click);
|
||||||
//
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
this.panel3.Controls.Add(this.transportControl);
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// transportControl
|
||||||
|
//
|
||||||
|
this.transportControl.AllowXtls = false;
|
||||||
|
resources.ApplyResources(this.transportControl, "transportControl");
|
||||||
|
this.transportControl.Name = "transportControl";
|
||||||
|
//
|
||||||
// AddServerForm
|
// AddServerForm
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.CancelButton = this.btnClose;
|
this.CancelButton = this.btnClose;
|
||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.menuServer);
|
this.Controls.Add(this.menuServer);
|
||||||
@@ -464,13 +257,10 @@
|
|||||||
this.Load += new System.EventHandler(this.AddServerForm_Load);
|
this.Load += new System.EventHandler(this.AddServerForm_Load);
|
||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.groupBox2.ResumeLayout(false);
|
|
||||||
this.groupBox2.PerformLayout();
|
|
||||||
this.panTlsMore.ResumeLayout(false);
|
|
||||||
this.panTlsMore.PerformLayout();
|
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.menuServer.ResumeLayout(false);
|
this.menuServer.ResumeLayout(false);
|
||||||
this.menuServer.PerformLayout();
|
this.menuServer.PerformLayout();
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
@@ -493,42 +283,18 @@
|
|||||||
private System.Windows.Forms.TextBox txtAddress;
|
private System.Windows.Forms.TextBox txtAddress;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
private System.Windows.Forms.ComboBox cmbSecurity;
|
private System.Windows.Forms.ComboBox cmbSecurity;
|
||||||
private System.Windows.Forms.ComboBox cmbNetwork;
|
|
||||||
private System.Windows.Forms.Label label7;
|
|
||||||
private System.Windows.Forms.Label label9;
|
|
||||||
private System.Windows.Forms.Label label8;
|
private System.Windows.Forms.Label label8;
|
||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.TextBox txtRequestHost;
|
|
||||||
private System.Windows.Forms.Label label10;
|
|
||||||
private System.Windows.Forms.Label label11;
|
|
||||||
private System.Windows.Forms.ComboBox cmbHeaderType;
|
|
||||||
private System.Windows.Forms.Label label12;
|
|
||||||
private System.Windows.Forms.GroupBox groupBox2;
|
|
||||||
private System.Windows.Forms.Label label13;
|
private System.Windows.Forms.Label label13;
|
||||||
private System.Windows.Forms.MenuStrip menuServer;
|
private System.Windows.Forms.MenuStrip menuServer;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClient;
|
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClient;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportServer;
|
private System.Windows.Forms.ToolStripMenuItem MenuItemImportServer;
|
||||||
private System.Windows.Forms.Label label15;
|
|
||||||
private System.Windows.Forms.ComboBox cmbStreamSecurity;
|
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClipboard;
|
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClipboard;
|
||||||
private System.Windows.Forms.Button btnGUID;
|
private System.Windows.Forms.Button btnGUID;
|
||||||
private System.Windows.Forms.Label label16;
|
private System.Windows.Forms.Panel panel3;
|
||||||
private System.Windows.Forms.Label label14;
|
private ServerTransportControl transportControl;
|
||||||
private System.Windows.Forms.Label label17;
|
|
||||||
private System.Windows.Forms.Label label18;
|
|
||||||
private System.Windows.Forms.Label label19;
|
|
||||||
private System.Windows.Forms.TextBox txtPath;
|
|
||||||
private System.Windows.Forms.Label label20;
|
|
||||||
private System.Windows.Forms.Label label21;
|
|
||||||
private System.Windows.Forms.ComboBox cmbAllowInsecure;
|
|
||||||
private System.Windows.Forms.Panel panTlsMore;
|
|
||||||
private System.Windows.Forms.Label label24;
|
|
||||||
private System.Windows.Forms.Label label23;
|
|
||||||
private System.Windows.Forms.Label label22;
|
|
||||||
private System.Windows.Forms.TextBox txtSNI;
|
|
||||||
private System.Windows.Forms.Label label25;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ using v2rayN.Mode;
|
|||||||
namespace v2rayN.Forms
|
namespace v2rayN.Forms
|
||||||
{
|
{
|
||||||
public partial class AddServerForm : BaseServerForm
|
public partial class AddServerForm : BaseServerForm
|
||||||
{
|
{
|
||||||
|
|
||||||
public AddServerForm()
|
public AddServerForm()
|
||||||
{
|
{
|
||||||
@@ -15,6 +15,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void AddServerForm_Load(object sender, EventArgs e)
|
private void AddServerForm_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
cmbSecurity.Items.AddRange(Global.vmessSecuritys.ToArray());
|
||||||
if (EditIndex >= 0)
|
if (EditIndex >= 0)
|
||||||
{
|
{
|
||||||
vmessItem = config.vmess[EditIndex];
|
vmessItem = config.vmess[EditIndex];
|
||||||
@@ -37,15 +38,9 @@ namespace v2rayN.Forms
|
|||||||
txtId.Text = vmessItem.id;
|
txtId.Text = vmessItem.id;
|
||||||
txtAlterId.Text = vmessItem.alterId.ToString();
|
txtAlterId.Text = vmessItem.alterId.ToString();
|
||||||
cmbSecurity.Text = vmessItem.security;
|
cmbSecurity.Text = vmessItem.security;
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
transportControl.BindingServer(vmessItem);
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
cmbAllowInsecure.Text = vmessItem.allowInsecure;
|
|
||||||
txtSNI.Text = vmessItem.sni;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -59,56 +54,11 @@ namespace v2rayN.Forms
|
|||||||
txtId.Text = "";
|
txtId.Text = "";
|
||||||
txtAlterId.Text = "0";
|
txtAlterId.Text = "0";
|
||||||
cmbSecurity.Text = Global.DefaultSecurity;
|
cmbSecurity.Text = Global.DefaultSecurity;
|
||||||
cmbNetwork.Text = Global.DefaultNetwork;
|
|
||||||
txtRemarks.Text = "";
|
txtRemarks.Text = "";
|
||||||
|
|
||||||
cmbHeaderType.Text = Global.None;
|
transportControl.ClearServer(vmessItem);
|
||||||
txtRequestHost.Text = "";
|
|
||||||
cmbStreamSecurity.Text = "";
|
|
||||||
cmbAllowInsecure.Text = "";
|
|
||||||
txtPath.Text = "";
|
|
||||||
txtSNI.Text = "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void cmbNetwork_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
SetHeaderType();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 设置伪装选项
|
|
||||||
/// </summary>
|
|
||||||
private void SetHeaderType()
|
|
||||||
{
|
|
||||||
cmbHeaderType.Items.Clear();
|
|
||||||
|
|
||||||
string network = cmbNetwork.Text;
|
|
||||||
if (Utils.IsNullOrEmpty(network))
|
|
||||||
{
|
|
||||||
cmbHeaderType.Items.Add(Global.None);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cmbHeaderType.Items.Add(Global.None);
|
|
||||||
if (network.Equals(Global.DefaultNetwork))
|
|
||||||
{
|
|
||||||
cmbHeaderType.Items.Add(Global.TcpHeaderHttp);
|
|
||||||
}
|
|
||||||
else if (network.Equals("kcp") || network.Equals("quic"))
|
|
||||||
{
|
|
||||||
cmbHeaderType.Items.Add("srtp");
|
|
||||||
cmbHeaderType.Items.Add("utp");
|
|
||||||
cmbHeaderType.Items.Add("wechat-video");
|
|
||||||
cmbHeaderType.Items.Add("dtls");
|
|
||||||
cmbHeaderType.Items.Add("wireguard");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
}
|
|
||||||
cmbHeaderType.Text = Global.None;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void btnOK_Click(object sender, EventArgs e)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
string address = txtAddress.Text;
|
string address = txtAddress.Text;
|
||||||
@@ -116,16 +66,8 @@ namespace v2rayN.Forms
|
|||||||
string id = txtId.Text;
|
string id = txtId.Text;
|
||||||
string alterId = txtAlterId.Text;
|
string alterId = txtAlterId.Text;
|
||||||
string security = cmbSecurity.Text;
|
string security = cmbSecurity.Text;
|
||||||
string network = cmbNetwork.Text;
|
|
||||||
string remarks = txtRemarks.Text;
|
string remarks = txtRemarks.Text;
|
||||||
|
|
||||||
string headerType = cmbHeaderType.Text;
|
|
||||||
string requestHost = txtRequestHost.Text;
|
|
||||||
string path = txtPath.Text;
|
|
||||||
string streamSecurity = cmbStreamSecurity.Text;
|
|
||||||
string allowInsecure = cmbAllowInsecure.Text;
|
|
||||||
string sni = txtSNI.Text;
|
|
||||||
|
|
||||||
if (Utils.IsNullOrEmpty(address))
|
if (Utils.IsNullOrEmpty(address))
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("FillServerAddress"));
|
UI.Show(UIRes.I18N("FillServerAddress"));
|
||||||
@@ -141,27 +83,16 @@ namespace v2rayN.Forms
|
|||||||
UI.Show(UIRes.I18N("FillUUID"));
|
UI.Show(UIRes.I18N("FillUUID"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Utils.IsNullOrEmpty(alterId) || !Utils.IsNumberic(alterId))
|
|
||||||
{
|
transportControl.EndBindingServer();
|
||||||
UI.Show(UIRes.I18N("FillCorrectAlterId"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
vmessItem.address = address;
|
vmessItem.address = address;
|
||||||
vmessItem.port = Utils.ToInt(port);
|
vmessItem.port = Utils.ToInt(port);
|
||||||
vmessItem.id = id;
|
vmessItem.id = id;
|
||||||
vmessItem.alterId = Utils.ToInt(alterId);
|
vmessItem.alterId = Utils.ToInt(alterId);
|
||||||
vmessItem.security = security;
|
vmessItem.security = security;
|
||||||
vmessItem.network = network;
|
|
||||||
vmessItem.remarks = remarks;
|
vmessItem.remarks = remarks;
|
||||||
|
|
||||||
vmessItem.headerType = headerType;
|
|
||||||
vmessItem.requestHost = requestHost.Replace(" ", "");
|
|
||||||
vmessItem.path = path.Replace(" ", "");
|
|
||||||
vmessItem.streamSecurity = streamSecurity;
|
|
||||||
vmessItem.allowInsecure = allowInsecure;
|
|
||||||
vmessItem.sni = sni;
|
|
||||||
|
|
||||||
if (ConfigHandler.AddServer(ref config, vmessItem, EditIndex) == 0)
|
if (ConfigHandler.AddServer(ref config, vmessItem, EditIndex) == 0)
|
||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.OK;
|
this.DialogResult = DialogResult.OK;
|
||||||
@@ -182,19 +113,6 @@ namespace v2rayN.Forms
|
|||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
string security = cmbStreamSecurity.Text;
|
|
||||||
if (Utils.IsNullOrEmpty(security))
|
|
||||||
{
|
|
||||||
panTlsMore.Hide();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
panTlsMore.Show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region 导入客户端/服务端配置
|
#region 导入客户端/服务端配置
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -236,31 +154,29 @@ namespace v2rayN.Forms
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
string msg;
|
string msg;
|
||||||
VmessItem vmessItem;
|
VmessItem vmessItemTemp;
|
||||||
if (type.Equals(1))
|
if (type.Equals(1))
|
||||||
{
|
{
|
||||||
vmessItem = V2rayConfigHandler.ImportFromClientConfig(fileName, out msg);
|
vmessItemTemp = V2rayConfigHandler.ImportFromClientConfig(fileName, out msg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vmessItem = V2rayConfigHandler.ImportFromServerConfig(fileName, out msg);
|
vmessItemTemp = V2rayConfigHandler.ImportFromServerConfig(fileName, out msg);
|
||||||
}
|
}
|
||||||
if (vmessItem == null)
|
if (vmessItemTemp == null)
|
||||||
{
|
{
|
||||||
UI.ShowWarning(msg);
|
UI.ShowWarning(msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
vmessItem = vmessItemTemp;
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
txtAddress.Text = vmessItem.address;
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
txtPort.Text = vmessItem.port.ToString();
|
||||||
txtId.Text = vmessItem.id;
|
txtId.Text = vmessItem.id;
|
||||||
txtAlterId.Text = vmessItem.alterId.ToString();
|
txtAlterId.Text = vmessItem.alterId.ToString();
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
transportControl.BindingServer(vmessItem);
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -272,23 +188,21 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
ClearServer();
|
ClearServer();
|
||||||
|
|
||||||
VmessItem vmessItem = ShareHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg);
|
VmessItem vmessItemTemp = ShareHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg);
|
||||||
if (vmessItem == null)
|
if (vmessItemTemp == null)
|
||||||
{
|
{
|
||||||
UI.ShowWarning(msg);
|
UI.ShowWarning(msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
vmessItem = vmessItemTemp;
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
txtAddress.Text = vmessItem.address;
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
txtPort.Text = vmessItem.port.ToString();
|
||||||
txtId.Text = vmessItem.id;
|
txtId.Text = vmessItem.id;
|
||||||
txtAlterId.Text = vmessItem.alterId.ToString();
|
txtAlterId.Text = vmessItem.alterId.ToString();
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
transportControl.BindingServer(vmessItem);
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -130,21 +130,12 @@
|
|||||||
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>149, 12</value>
|
<value>149, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label24.Text" xml:space="preserve">
|
|
||||||
<value>3)QUIC 加密密钥/Kcp seed</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>95, 12</value>
|
<value>95, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label23.Text" xml:space="preserve">
|
|
||||||
<value>4)QUIC 加密方式</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>167, 12</value>
|
<value>167, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label21.Text" xml:space="preserve">
|
|
||||||
<value>跳过证书验证(allowInsecure)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>180, 7</value>
|
<value>180, 7</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -154,15 +145,9 @@
|
|||||||
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>143, 12</value>
|
<value>143, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label9.Text" xml:space="preserve">
|
|
||||||
<value>*默认tcp,选错会无法连接</value>
|
|
||||||
</data>
|
|
||||||
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>149, 12</value>
|
<value>149, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label20.Text" xml:space="preserve">
|
|
||||||
<value>3)h2 host中间逗号(,)隔开</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtPath.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 168</value>
|
<value>127, 168</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -178,33 +163,21 @@
|
|||||||
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>107, 12</value>
|
<value>107, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label7.Text" xml:space="preserve">
|
|
||||||
<value>传输协议(network)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label19.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>9, 168</value>
|
<value>9, 168</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label19.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label19.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>65, 12</value>
|
<value>65, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label19.Text" xml:space="preserve">
|
|
||||||
<value>路径(path)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>161, 12</value>
|
<value>161, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label14.Text" xml:space="preserve">
|
|
||||||
<value>1)http host中间逗号(,)隔开</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label15.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>9, 237</value>
|
<value>9, 237</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>107, 12</value>
|
<value>107, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label15.Text" xml:space="preserve">
|
|
||||||
<value>底层传输安全(tls)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 237</value>
|
<value>127, 237</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -214,9 +187,6 @@
|
|||||||
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>197, 12</value>
|
<value>197, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label12.Text" xml:space="preserve">
|
|
||||||
<value>*tcp或kcp或QUIC伪装类型,默认none</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 102</value>
|
<value>127, 102</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -229,24 +199,15 @@
|
|||||||
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>89, 12</value>
|
<value>89, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label11.Text" xml:space="preserve">
|
|
||||||
<value>伪装类型(type)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label10.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>9, 102</value>
|
<value>9, 102</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>89, 12</value>
|
<value>89, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label10.Text" xml:space="preserve">
|
|
||||||
<value>伪装域名(host)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 67</value>
|
<value>127, 67</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>底层传输方式(transport)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>113, 12</value>
|
<value>113, 12</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
382
v2rayN/v2rayN/Forms/MainForm.Designer.cs
generated
382
v2rayN/v2rayN/Forms/MainForm.Designer.cs
generated
@@ -66,6 +66,23 @@
|
|||||||
this.menuExport2SubContent = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExport2SubContent = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton();
|
this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.qrCodeControl = new v2rayN.Forms.QRCodeControl();
|
this.qrCodeControl = new v2rayN.Forms.QRCodeControl();
|
||||||
|
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.gbMsgTitle = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtMsgBox = new System.Windows.Forms.TextBox();
|
||||||
|
this.cmsMsgBox = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.menuMsgBoxSelectAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxCopy = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxCopyAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxAddRoutingRule = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxFilter = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ssMain = new System.Windows.Forms.StatusStrip();
|
||||||
|
this.toolSslInboundInfo = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslBlank1 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslRoutingRule = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslBlank2 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslServerSpeed = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslBlank4 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.notifyMain = new System.Windows.Forms.NotifyIcon(this.components);
|
this.notifyMain = new System.Windows.Forms.NotifyIcon(this.components);
|
||||||
this.cmsMain = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.cmsMain = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.menuSysAgentMode = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuSysAgentMode = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -74,6 +91,7 @@
|
|||||||
this.menuKeepNothing = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuKeepNothing = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuRoutings = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuRoutings = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuServers = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuServers = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuServers2 = new System.Windows.Forms.ToolStripComboBox();
|
||||||
this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.menuAddServers2 = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuAddServers2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuScanScreen2 = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuScanScreen2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -81,24 +99,6 @@
|
|||||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.menuExit = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExit = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.bgwScan = new System.ComponentModel.BackgroundWorker();
|
this.bgwScan = new System.ComponentModel.BackgroundWorker();
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
|
||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
|
||||||
this.txtMsgBox = new System.Windows.Forms.TextBox();
|
|
||||||
this.cmsMsgBox = new System.Windows.Forms.ContextMenuStrip(this.components);
|
|
||||||
this.menuMsgBoxSelectAll = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.menuMsgBoxCopy = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.menuMsgBoxCopyAll = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.menuMsgBoxAddRoutingRule = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.ssMain = new System.Windows.Forms.StatusStrip();
|
|
||||||
this.toolSslSocksPortLab = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslSocksPort = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslBlank1 = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslHttpPortLab = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslHttpPort = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslBlank2 = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslBlank3 = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslServerSpeed = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslBlank4 = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.tsMain = new System.Windows.Forms.ToolStrip();
|
this.tsMain = new System.Windows.Forms.ToolStrip();
|
||||||
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
@@ -110,6 +110,8 @@
|
|||||||
this.tsbSetting = new System.Windows.Forms.ToolStripDropDownButton();
|
this.tsbSetting = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.tsbOptionSetting = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbOptionSetting = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbRoutingSetting = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbRoutingSetting = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.tsbBackupGuiNConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbReload = new System.Windows.Forms.ToolStripButton();
|
this.tsbReload = new System.Windows.Forms.ToolStripButton();
|
||||||
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
@@ -117,6 +119,9 @@
|
|||||||
this.tsbCheckUpdateN = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbCheckUpdateN = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbCheckUpdateCore = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbCheckUpdateCore = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbCheckUpdateXrayCore = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbCheckUpdateXrayCore = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator15 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.tsbCheckUpdateGeoSite = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsbCheckUpdateGeoIP = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbHelp = new System.Windows.Forms.ToolStripDropDownButton();
|
this.tsbHelp = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.tsbAbout = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbAbout = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -132,11 +137,15 @@
|
|||||||
this.scMain.Panel2.SuspendLayout();
|
this.scMain.Panel2.SuspendLayout();
|
||||||
this.scMain.SuspendLayout();
|
this.scMain.SuspendLayout();
|
||||||
this.cmsLv.SuspendLayout();
|
this.cmsLv.SuspendLayout();
|
||||||
this.cmsMain.SuspendLayout();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||||
|
this.splitContainer1.Panel1.SuspendLayout();
|
||||||
|
this.splitContainer1.Panel2.SuspendLayout();
|
||||||
|
this.splitContainer1.SuspendLayout();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
this.gbMsgTitle.SuspendLayout();
|
||||||
this.cmsMsgBox.SuspendLayout();
|
this.cmsMsgBox.SuspendLayout();
|
||||||
this.ssMain.SuspendLayout();
|
this.ssMain.SuspendLayout();
|
||||||
|
this.cmsMain.SuspendLayout();
|
||||||
this.tsMain.SuspendLayout();
|
this.tsMain.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
@@ -410,6 +419,135 @@
|
|||||||
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
|
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
|
||||||
this.qrCodeControl.Name = "qrCodeControl";
|
this.qrCodeControl.Name = "qrCodeControl";
|
||||||
//
|
//
|
||||||
|
// splitContainer1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.splitContainer1, "splitContainer1");
|
||||||
|
this.splitContainer1.Name = "splitContainer1";
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.splitContainer1.Panel1, "splitContainer1.Panel1");
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.groupBox1);
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.splitContainer1.Panel2, "splitContainer1.Panel2");
|
||||||
|
this.splitContainer1.Panel2.Controls.Add(this.gbMsgTitle);
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.scMain);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// gbMsgTitle
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.gbMsgTitle, "gbMsgTitle");
|
||||||
|
this.gbMsgTitle.Controls.Add(this.txtMsgBox);
|
||||||
|
this.gbMsgTitle.Controls.Add(this.ssMain);
|
||||||
|
this.gbMsgTitle.Name = "gbMsgTitle";
|
||||||
|
this.gbMsgTitle.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtMsgBox
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtMsgBox, "txtMsgBox");
|
||||||
|
this.txtMsgBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(49)))), ((int)(((byte)(52)))));
|
||||||
|
this.txtMsgBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.txtMsgBox.ContextMenuStrip = this.cmsMsgBox;
|
||||||
|
this.txtMsgBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(226)))), ((int)(((byte)(228)))));
|
||||||
|
this.txtMsgBox.Name = "txtMsgBox";
|
||||||
|
this.txtMsgBox.ReadOnly = true;
|
||||||
|
this.txtMsgBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtMsgBox_KeyDown);
|
||||||
|
//
|
||||||
|
// cmsMsgBox
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmsMsgBox, "cmsMsgBox");
|
||||||
|
this.cmsMsgBox.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.menuMsgBoxSelectAll,
|
||||||
|
this.menuMsgBoxCopy,
|
||||||
|
this.menuMsgBoxCopyAll,
|
||||||
|
this.menuMsgBoxAddRoutingRule,
|
||||||
|
this.menuMsgBoxFilter});
|
||||||
|
this.cmsMsgBox.Name = "cmsMsgBox";
|
||||||
|
//
|
||||||
|
// menuMsgBoxSelectAll
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMsgBoxSelectAll, "menuMsgBoxSelectAll");
|
||||||
|
this.menuMsgBoxSelectAll.Name = "menuMsgBoxSelectAll";
|
||||||
|
this.menuMsgBoxSelectAll.Click += new System.EventHandler(this.menuMsgBoxSelectAll_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxCopy
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMsgBoxCopy, "menuMsgBoxCopy");
|
||||||
|
this.menuMsgBoxCopy.Name = "menuMsgBoxCopy";
|
||||||
|
this.menuMsgBoxCopy.Click += new System.EventHandler(this.menuMsgBoxCopy_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxCopyAll
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMsgBoxCopyAll, "menuMsgBoxCopyAll");
|
||||||
|
this.menuMsgBoxCopyAll.Name = "menuMsgBoxCopyAll";
|
||||||
|
this.menuMsgBoxCopyAll.Click += new System.EventHandler(this.menuMsgBoxCopyAll_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxAddRoutingRule
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMsgBoxAddRoutingRule, "menuMsgBoxAddRoutingRule");
|
||||||
|
this.menuMsgBoxAddRoutingRule.Name = "menuMsgBoxAddRoutingRule";
|
||||||
|
this.menuMsgBoxAddRoutingRule.Click += new System.EventHandler(this.menuMsgBoxAddRoutingRule_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxFilter
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMsgBoxFilter, "menuMsgBoxFilter");
|
||||||
|
this.menuMsgBoxFilter.Name = "menuMsgBoxFilter";
|
||||||
|
this.menuMsgBoxFilter.Click += new System.EventHandler(this.menuMsgBoxFilter_Click);
|
||||||
|
//
|
||||||
|
// ssMain
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.ssMain, "ssMain");
|
||||||
|
this.ssMain.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolSslInboundInfo,
|
||||||
|
this.toolSslBlank1,
|
||||||
|
this.toolSslRoutingRule,
|
||||||
|
this.toolSslBlank2,
|
||||||
|
this.toolSslServerSpeed,
|
||||||
|
this.toolSslBlank4});
|
||||||
|
this.ssMain.Name = "ssMain";
|
||||||
|
this.ssMain.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ssMain_ItemClicked);
|
||||||
|
//
|
||||||
|
// toolSslInboundInfo
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolSslInboundInfo, "toolSslInboundInfo");
|
||||||
|
this.toolSslInboundInfo.Name = "toolSslInboundInfo";
|
||||||
|
//
|
||||||
|
// toolSslBlank1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolSslBlank1, "toolSslBlank1");
|
||||||
|
this.toolSslBlank1.Name = "toolSslBlank1";
|
||||||
|
this.toolSslBlank1.Spring = true;
|
||||||
|
//
|
||||||
|
// toolSslRoutingRule
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolSslRoutingRule, "toolSslRoutingRule");
|
||||||
|
this.toolSslRoutingRule.Name = "toolSslRoutingRule";
|
||||||
|
//
|
||||||
|
// toolSslBlank2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolSslBlank2, "toolSslBlank2");
|
||||||
|
this.toolSslBlank2.Name = "toolSslBlank2";
|
||||||
|
this.toolSslBlank2.Spring = true;
|
||||||
|
//
|
||||||
|
// toolSslServerSpeed
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolSslServerSpeed, "toolSslServerSpeed");
|
||||||
|
this.toolSslServerSpeed.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||||
|
this.toolSslServerSpeed.Name = "toolSslServerSpeed";
|
||||||
|
//
|
||||||
|
// toolSslBlank4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolSslBlank4, "toolSslBlank4");
|
||||||
|
this.toolSslBlank4.Name = "toolSslBlank4";
|
||||||
|
//
|
||||||
// notifyMain
|
// notifyMain
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.notifyMain, "notifyMain");
|
resources.ApplyResources(this.notifyMain, "notifyMain");
|
||||||
@@ -424,6 +562,7 @@
|
|||||||
this.menuSysAgentMode,
|
this.menuSysAgentMode,
|
||||||
this.menuRoutings,
|
this.menuRoutings,
|
||||||
this.menuServers,
|
this.menuServers,
|
||||||
|
this.menuServers2,
|
||||||
this.toolStripSeparator13,
|
this.toolStripSeparator13,
|
||||||
this.menuAddServers2,
|
this.menuAddServers2,
|
||||||
this.menuScanScreen2,
|
this.menuScanScreen2,
|
||||||
@@ -472,6 +611,14 @@
|
|||||||
resources.ApplyResources(this.menuServers, "menuServers");
|
resources.ApplyResources(this.menuServers, "menuServers");
|
||||||
this.menuServers.Name = "menuServers";
|
this.menuServers.Name = "menuServers";
|
||||||
//
|
//
|
||||||
|
// menuServers2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuServers2, "menuServers2");
|
||||||
|
this.menuServers2.BackColor = System.Drawing.SystemColors.Window;
|
||||||
|
this.menuServers2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.menuServers2.DropDownWidth = 500;
|
||||||
|
this.menuServers2.Name = "menuServers2";
|
||||||
|
//
|
||||||
// toolStripSeparator13
|
// toolStripSeparator13
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.toolStripSeparator13, "toolStripSeparator13");
|
resources.ApplyResources(this.toolStripSeparator13, "toolStripSeparator13");
|
||||||
@@ -512,132 +659,6 @@
|
|||||||
this.bgwScan.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bgwScan_DoWork);
|
this.bgwScan.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bgwScan_DoWork);
|
||||||
this.bgwScan.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bgwScan_ProgressChanged);
|
this.bgwScan.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bgwScan_ProgressChanged);
|
||||||
//
|
//
|
||||||
// groupBox1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
|
||||||
this.groupBox1.Controls.Add(this.scMain);
|
|
||||||
this.groupBox1.Name = "groupBox1";
|
|
||||||
this.groupBox1.TabStop = false;
|
|
||||||
//
|
|
||||||
// groupBox2
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
|
||||||
this.groupBox2.Controls.Add(this.txtMsgBox);
|
|
||||||
this.groupBox2.Controls.Add(this.ssMain);
|
|
||||||
this.groupBox2.Name = "groupBox2";
|
|
||||||
this.groupBox2.TabStop = false;
|
|
||||||
//
|
|
||||||
// txtMsgBox
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtMsgBox, "txtMsgBox");
|
|
||||||
this.txtMsgBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(49)))), ((int)(((byte)(52)))));
|
|
||||||
this.txtMsgBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
|
||||||
this.txtMsgBox.ContextMenuStrip = this.cmsMsgBox;
|
|
||||||
this.txtMsgBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(226)))), ((int)(((byte)(228)))));
|
|
||||||
this.txtMsgBox.Name = "txtMsgBox";
|
|
||||||
this.txtMsgBox.ReadOnly = true;
|
|
||||||
this.txtMsgBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtMsgBox_KeyDown);
|
|
||||||
//
|
|
||||||
// cmsMsgBox
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.cmsMsgBox, "cmsMsgBox");
|
|
||||||
this.cmsMsgBox.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.menuMsgBoxSelectAll,
|
|
||||||
this.menuMsgBoxCopy,
|
|
||||||
this.menuMsgBoxCopyAll,
|
|
||||||
this.menuMsgBoxAddRoutingRule});
|
|
||||||
this.cmsMsgBox.Name = "cmsMsgBox";
|
|
||||||
//
|
|
||||||
// menuMsgBoxSelectAll
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.menuMsgBoxSelectAll, "menuMsgBoxSelectAll");
|
|
||||||
this.menuMsgBoxSelectAll.Name = "menuMsgBoxSelectAll";
|
|
||||||
this.menuMsgBoxSelectAll.Click += new System.EventHandler(this.menuMsgBoxSelectAll_Click);
|
|
||||||
//
|
|
||||||
// menuMsgBoxCopy
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.menuMsgBoxCopy, "menuMsgBoxCopy");
|
|
||||||
this.menuMsgBoxCopy.Name = "menuMsgBoxCopy";
|
|
||||||
this.menuMsgBoxCopy.Click += new System.EventHandler(this.menuMsgBoxCopy_Click);
|
|
||||||
//
|
|
||||||
// menuMsgBoxCopyAll
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.menuMsgBoxCopyAll, "menuMsgBoxCopyAll");
|
|
||||||
this.menuMsgBoxCopyAll.Name = "menuMsgBoxCopyAll";
|
|
||||||
this.menuMsgBoxCopyAll.Click += new System.EventHandler(this.menuMsgBoxCopyAll_Click);
|
|
||||||
//
|
|
||||||
// menuMsgBoxAddRoutingRule
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.menuMsgBoxAddRoutingRule, "menuMsgBoxAddRoutingRule");
|
|
||||||
this.menuMsgBoxAddRoutingRule.Name = "menuMsgBoxAddRoutingRule";
|
|
||||||
this.menuMsgBoxAddRoutingRule.Click += new System.EventHandler(this.menuMsgBoxAddRoutingRule_Click);
|
|
||||||
//
|
|
||||||
// ssMain
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.ssMain, "ssMain");
|
|
||||||
this.ssMain.ImageScalingSize = new System.Drawing.Size(20, 20);
|
|
||||||
this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.toolSslSocksPortLab,
|
|
||||||
this.toolSslSocksPort,
|
|
||||||
this.toolSslBlank1,
|
|
||||||
this.toolSslHttpPortLab,
|
|
||||||
this.toolSslHttpPort,
|
|
||||||
this.toolSslBlank2,
|
|
||||||
this.toolSslBlank3,
|
|
||||||
this.toolSslServerSpeed,
|
|
||||||
this.toolSslBlank4});
|
|
||||||
this.ssMain.Name = "ssMain";
|
|
||||||
this.ssMain.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ssMain_ItemClicked);
|
|
||||||
//
|
|
||||||
// toolSslSocksPortLab
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslSocksPortLab, "toolSslSocksPortLab");
|
|
||||||
this.toolSslSocksPortLab.Name = "toolSslSocksPortLab";
|
|
||||||
//
|
|
||||||
// toolSslSocksPort
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslSocksPort, "toolSslSocksPort");
|
|
||||||
this.toolSslSocksPort.Name = "toolSslSocksPort";
|
|
||||||
//
|
|
||||||
// toolSslBlank1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslBlank1, "toolSslBlank1");
|
|
||||||
this.toolSslBlank1.Name = "toolSslBlank1";
|
|
||||||
this.toolSslBlank1.Spring = true;
|
|
||||||
//
|
|
||||||
// toolSslHttpPortLab
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslHttpPortLab, "toolSslHttpPortLab");
|
|
||||||
this.toolSslHttpPortLab.Name = "toolSslHttpPortLab";
|
|
||||||
//
|
|
||||||
// toolSslHttpPort
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslHttpPort, "toolSslHttpPort");
|
|
||||||
this.toolSslHttpPort.Name = "toolSslHttpPort";
|
|
||||||
//
|
|
||||||
// toolSslBlank2
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslBlank2, "toolSslBlank2");
|
|
||||||
this.toolSslBlank2.Name = "toolSslBlank2";
|
|
||||||
this.toolSslBlank2.Spring = true;
|
|
||||||
//
|
|
||||||
// toolSslBlank3
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslBlank3, "toolSslBlank3");
|
|
||||||
this.toolSslBlank3.Name = "toolSslBlank3";
|
|
||||||
this.toolSslBlank3.Spring = true;
|
|
||||||
//
|
|
||||||
// toolSslServerSpeed
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslServerSpeed, "toolSslServerSpeed");
|
|
||||||
this.toolSslServerSpeed.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolSslServerSpeed.Name = "toolSslServerSpeed";
|
|
||||||
//
|
|
||||||
// toolSslBlank4
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslBlank4, "toolSslBlank4");
|
|
||||||
this.toolSslBlank4.Name = "toolSslBlank4";
|
|
||||||
//
|
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.panel1, "panel1");
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
@@ -711,7 +732,9 @@
|
|||||||
resources.ApplyResources(this.tsbSetting, "tsbSetting");
|
resources.ApplyResources(this.tsbSetting, "tsbSetting");
|
||||||
this.tsbSetting.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.tsbSetting.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.tsbOptionSetting,
|
this.tsbOptionSetting,
|
||||||
this.tsbRoutingSetting});
|
this.tsbRoutingSetting,
|
||||||
|
this.toolStripSeparator14,
|
||||||
|
this.tsbBackupGuiNConfig});
|
||||||
this.tsbSetting.Image = global::v2rayN.Properties.Resources.option;
|
this.tsbSetting.Image = global::v2rayN.Properties.Resources.option;
|
||||||
this.tsbSetting.Name = "tsbSetting";
|
this.tsbSetting.Name = "tsbSetting";
|
||||||
//
|
//
|
||||||
@@ -727,6 +750,17 @@
|
|||||||
this.tsbRoutingSetting.Name = "tsbRoutingSetting";
|
this.tsbRoutingSetting.Name = "tsbRoutingSetting";
|
||||||
this.tsbRoutingSetting.Click += new System.EventHandler(this.tsbRoutingSetting_Click);
|
this.tsbRoutingSetting.Click += new System.EventHandler(this.tsbRoutingSetting_Click);
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator14
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolStripSeparator14, "toolStripSeparator14");
|
||||||
|
this.toolStripSeparator14.Name = "toolStripSeparator14";
|
||||||
|
//
|
||||||
|
// tsbBackupGuiNConfig
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tsbBackupGuiNConfig, "tsbBackupGuiNConfig");
|
||||||
|
this.tsbBackupGuiNConfig.Name = "tsbBackupGuiNConfig";
|
||||||
|
this.tsbBackupGuiNConfig.Click += new System.EventHandler(this.tsbBackupGuiNConfig_Click);
|
||||||
|
//
|
||||||
// toolStripSeparator5
|
// toolStripSeparator5
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.toolStripSeparator5, "toolStripSeparator5");
|
resources.ApplyResources(this.toolStripSeparator5, "toolStripSeparator5");
|
||||||
@@ -749,7 +783,10 @@
|
|||||||
this.tsbCheckUpdate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.tsbCheckUpdate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.tsbCheckUpdateN,
|
this.tsbCheckUpdateN,
|
||||||
this.tsbCheckUpdateCore,
|
this.tsbCheckUpdateCore,
|
||||||
this.tsbCheckUpdateXrayCore});
|
this.tsbCheckUpdateXrayCore,
|
||||||
|
this.toolStripSeparator15,
|
||||||
|
this.tsbCheckUpdateGeoSite,
|
||||||
|
this.tsbCheckUpdateGeoIP});
|
||||||
this.tsbCheckUpdate.Image = global::v2rayN.Properties.Resources.checkupdate;
|
this.tsbCheckUpdate.Image = global::v2rayN.Properties.Resources.checkupdate;
|
||||||
this.tsbCheckUpdate.Name = "tsbCheckUpdate";
|
this.tsbCheckUpdate.Name = "tsbCheckUpdate";
|
||||||
//
|
//
|
||||||
@@ -771,6 +808,23 @@
|
|||||||
this.tsbCheckUpdateXrayCore.Name = "tsbCheckUpdateXrayCore";
|
this.tsbCheckUpdateXrayCore.Name = "tsbCheckUpdateXrayCore";
|
||||||
this.tsbCheckUpdateXrayCore.Click += new System.EventHandler(this.tsbCheckUpdateXrayCore_Click);
|
this.tsbCheckUpdateXrayCore.Click += new System.EventHandler(this.tsbCheckUpdateXrayCore_Click);
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator15
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolStripSeparator15, "toolStripSeparator15");
|
||||||
|
this.toolStripSeparator15.Name = "toolStripSeparator15";
|
||||||
|
//
|
||||||
|
// tsbCheckUpdateGeoSite
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tsbCheckUpdateGeoSite, "tsbCheckUpdateGeoSite");
|
||||||
|
this.tsbCheckUpdateGeoSite.Name = "tsbCheckUpdateGeoSite";
|
||||||
|
this.tsbCheckUpdateGeoSite.Click += new System.EventHandler(this.tsbCheckUpdateGeoSite_Click);
|
||||||
|
//
|
||||||
|
// tsbCheckUpdateGeoIP
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tsbCheckUpdateGeoIP, "tsbCheckUpdateGeoIP");
|
||||||
|
this.tsbCheckUpdateGeoIP.Name = "tsbCheckUpdateGeoIP";
|
||||||
|
this.tsbCheckUpdateGeoIP.Click += new System.EventHandler(this.tsbCheckUpdateGeoIP_Click);
|
||||||
|
//
|
||||||
// toolStripSeparator10
|
// toolStripSeparator10
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.toolStripSeparator10, "toolStripSeparator10");
|
resources.ApplyResources(this.toolStripSeparator10, "toolStripSeparator10");
|
||||||
@@ -840,8 +894,7 @@
|
|||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.splitContainer1);
|
||||||
this.Controls.Add(this.groupBox2);
|
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.tsMain);
|
this.Controls.Add(this.tsMain);
|
||||||
this.MaximizeBox = true;
|
this.MaximizeBox = true;
|
||||||
@@ -857,13 +910,17 @@
|
|||||||
((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit();
|
||||||
this.scMain.ResumeLayout(false);
|
this.scMain.ResumeLayout(false);
|
||||||
this.cmsLv.ResumeLayout(false);
|
this.cmsLv.ResumeLayout(false);
|
||||||
this.cmsMain.ResumeLayout(false);
|
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||||
|
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||||
|
this.splitContainer1.ResumeLayout(false);
|
||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox2.ResumeLayout(false);
|
this.gbMsgTitle.ResumeLayout(false);
|
||||||
this.groupBox2.PerformLayout();
|
this.gbMsgTitle.PerformLayout();
|
||||||
this.cmsMsgBox.ResumeLayout(false);
|
this.cmsMsgBox.ResumeLayout(false);
|
||||||
this.ssMain.ResumeLayout(false);
|
this.ssMain.ResumeLayout(false);
|
||||||
this.ssMain.PerformLayout();
|
this.ssMain.PerformLayout();
|
||||||
|
this.cmsMain.ResumeLayout(false);
|
||||||
this.tsMain.ResumeLayout(false);
|
this.tsMain.ResumeLayout(false);
|
||||||
this.tsMain.PerformLayout();
|
this.tsMain.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
@@ -874,7 +931,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.GroupBox groupBox1;
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
private System.Windows.Forms.GroupBox groupBox2;
|
private System.Windows.Forms.GroupBox gbMsgTitle;
|
||||||
private System.Windows.Forms.TextBox txtMsgBox;
|
private System.Windows.Forms.TextBox txtMsgBox;
|
||||||
private v2rayN.Base.ListViewFlickerFree lvServers;
|
private v2rayN.Base.ListViewFlickerFree lvServers;
|
||||||
private System.Windows.Forms.NotifyIcon notifyMain;
|
private System.Windows.Forms.NotifyIcon notifyMain;
|
||||||
@@ -938,13 +995,7 @@
|
|||||||
private System.Windows.Forms.ToolStripButton tsbPromotion;
|
private System.Windows.Forms.ToolStripButton tsbPromotion;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuAddSocksServer;
|
private System.Windows.Forms.ToolStripMenuItem menuAddSocksServer;
|
||||||
private System.Windows.Forms.StatusStrip ssMain;
|
private System.Windows.Forms.StatusStrip ssMain;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslSocksPort;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslHttpPort;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank2;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank1;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank1;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank3;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslSocksPortLab;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslHttpPortLab;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslServerSpeed;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslServerSpeed;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank4;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank4;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuRemoveDuplicateServer;
|
private System.Windows.Forms.ToolStripMenuItem menuRemoveDuplicateServer;
|
||||||
@@ -970,6 +1021,17 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxCopy;
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxCopy;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxAddRoutingRule;
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxAddRoutingRule;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxCopyAll;
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxCopyAll;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbBackupGuiNConfig;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator15;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateGeoSite;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateGeoIP;
|
||||||
|
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxFilter;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolSslInboundInfo;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolSslRoutingRule;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank2;
|
||||||
|
private System.Windows.Forms.ToolStripComboBox menuServers2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ using v2rayN.Tool;
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace v2rayN.Forms
|
namespace v2rayN.Forms
|
||||||
{
|
{
|
||||||
@@ -19,6 +20,7 @@ namespace v2rayN.Forms
|
|||||||
private V2rayHandler v2rayHandler;
|
private V2rayHandler v2rayHandler;
|
||||||
private List<int> lvSelecteds = new List<int>();
|
private List<int> lvSelecteds = new List<int>();
|
||||||
private StatisticsHandler statistics = null;
|
private StatisticsHandler statistics = null;
|
||||||
|
private string MsgFilter = string.Empty;
|
||||||
|
|
||||||
#region Window 事件
|
#region Window 事件
|
||||||
|
|
||||||
@@ -33,21 +35,20 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
Application.ApplicationExit += (sender, args) =>
|
Application.ApplicationExit += (sender, args) =>
|
||||||
{
|
{
|
||||||
v2rayHandler.V2rayStop();
|
MyAppExit(false);
|
||||||
|
|
||||||
//HttpProxyHandle.CloseHttpAgent(config);
|
|
||||||
HttpProxyHandle.UpdateSysProxy(config, true);
|
|
||||||
|
|
||||||
ConfigHandler.SaveConfig(ref config);
|
|
||||||
statistics?.SaveToFile();
|
|
||||||
statistics?.Close();
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MainForm_Load(object sender, EventArgs e)
|
private void MainForm_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ConfigHandler.LoadConfig(ref config);
|
if (ConfigHandler.LoadConfig(ref config) != 0)
|
||||||
|
{
|
||||||
|
UI.ShowWarning($"Loading GUI configuration file is abnormal,please restart the application{Environment.NewLine}加载GUI配置文件异常,请重启应用");
|
||||||
|
Environment.Exit(0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
ConfigHandler.InitBuiltinRouting(ref config);
|
ConfigHandler.InitBuiltinRouting(ref config);
|
||||||
|
MainFormHandler.Instance.BackupGuiNConfig(config, true);
|
||||||
v2rayHandler = new V2rayHandler();
|
v2rayHandler = new V2rayHandler();
|
||||||
v2rayHandler.ProcessEvent += v2rayHandler_ProcessEvent;
|
v2rayHandler.ProcessEvent += v2rayHandler_ProcessEvent;
|
||||||
|
|
||||||
@@ -55,6 +56,7 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
statistics = new StatisticsHandler(config, UpdateStatisticsHandler);
|
statistics = new StatisticsHandler(config, UpdateStatisticsHandler);
|
||||||
}
|
}
|
||||||
|
MainFormHandler.Instance.UpdateTask(config, UpdateTaskHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MainForm_VisibleChanged(object sender, EventArgs e)
|
private void MainForm_VisibleChanged(object sender, EventArgs e)
|
||||||
@@ -85,12 +87,21 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
|
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.CloseReason == CloseReason.UserClosing)
|
switch (e.CloseReason)
|
||||||
{
|
{
|
||||||
StorageUI();
|
case CloseReason.UserClosing:
|
||||||
e.Cancel = true;
|
StorageUI();
|
||||||
HideForm();
|
e.Cancel = true;
|
||||||
return;
|
HideForm();
|
||||||
|
break;
|
||||||
|
case CloseReason.ApplicationExitCall:
|
||||||
|
case CloseReason.FormOwnerClosing:
|
||||||
|
case CloseReason.TaskManagerClosing:
|
||||||
|
MyAppExit(false);
|
||||||
|
break;
|
||||||
|
case CloseReason.WindowsShutDown:
|
||||||
|
MyAppExit(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,26 +116,28 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
private void MyAppExit(bool blWindowsShutDown)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
v2rayHandler.V2rayStop();
|
||||||
|
|
||||||
|
//HttpProxyHandle.CloseHttpAgent(config);
|
||||||
|
if (blWindowsShutDown)
|
||||||
|
{
|
||||||
|
HttpProxyHandle.ResetIEProxy4WindowsShutDown();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
HttpProxyHandle.UpdateSysProxy(config, true);
|
||||||
|
}
|
||||||
|
|
||||||
//private const int WM_QUERYENDSESSION = 0x0011;
|
ConfigHandler.SaveConfig(ref config);
|
||||||
//protected override void WndProc(ref Message m)
|
statistics?.SaveToFile();
|
||||||
//{
|
statistics?.Close();
|
||||||
// switch (m.Msg)
|
}
|
||||||
// {
|
catch { }
|
||||||
// case WM_QUERYENDSESSION:
|
}
|
||||||
// Utils.SaveLog("Windows shutdown UnsetProxy");
|
|
||||||
|
|
||||||
// ConfigHandler.ToJsonFile(config);
|
|
||||||
// statistics?.SaveToFile();
|
|
||||||
// ProxySetting.UnsetProxy();
|
|
||||||
// m.Result = (IntPtr)1;
|
|
||||||
// break;
|
|
||||||
// default:
|
|
||||||
// base.WndProc(ref m);
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
private void RestoreUI()
|
private void RestoreUI()
|
||||||
{
|
{
|
||||||
@@ -189,6 +202,7 @@ namespace v2rayN.Forms
|
|||||||
lvServers.Columns.Add(UIRes.I18N("LvPort"), 50);
|
lvServers.Columns.Add(UIRes.I18N("LvPort"), 50);
|
||||||
lvServers.Columns.Add(UIRes.I18N("LvEncryptionMethod"), 90);
|
lvServers.Columns.Add(UIRes.I18N("LvEncryptionMethod"), 90);
|
||||||
lvServers.Columns.Add(UIRes.I18N("LvTransportProtocol"), 70);
|
lvServers.Columns.Add(UIRes.I18N("LvTransportProtocol"), 70);
|
||||||
|
lvServers.Columns.Add(UIRes.I18N("LvTLS"), 70);
|
||||||
lvServers.Columns.Add(UIRes.I18N("LvSubscription"), 50);
|
lvServers.Columns.Add(UIRes.I18N("LvSubscription"), 50);
|
||||||
lvServers.Columns.Add(UIRes.I18N("LvTestResults"), 70, HorizontalAlignment.Right);
|
lvServers.Columns.Add(UIRes.I18N("LvTestResults"), 70, HorizontalAlignment.Right);
|
||||||
|
|
||||||
@@ -245,6 +259,7 @@ namespace v2rayN.Forms
|
|||||||
Utils.AddSubItem(lvItem, EServerColName.port.ToString(), item.port.ToString());
|
Utils.AddSubItem(lvItem, EServerColName.port.ToString(), item.port.ToString());
|
||||||
Utils.AddSubItem(lvItem, EServerColName.security.ToString(), item.security);
|
Utils.AddSubItem(lvItem, EServerColName.security.ToString(), item.security);
|
||||||
Utils.AddSubItem(lvItem, EServerColName.network.ToString(), item.network);
|
Utils.AddSubItem(lvItem, EServerColName.network.ToString(), item.network);
|
||||||
|
Utils.AddSubItem(lvItem, EServerColName.streamSecurity.ToString(), item.streamSecurity);
|
||||||
Utils.AddSubItem(lvItem, EServerColName.subRemarks.ToString(), item.getSubRemarks(config));
|
Utils.AddSubItem(lvItem, EServerColName.subRemarks.ToString(), item.getSubRemarks(config));
|
||||||
Utils.AddSubItem(lvItem, EServerColName.testResult.ToString(), item.testResult);
|
Utils.AddSubItem(lvItem, EServerColName.testResult.ToString(), item.testResult);
|
||||||
if (stats)
|
if (stats)
|
||||||
@@ -283,25 +298,56 @@ namespace v2rayN.Forms
|
|||||||
private void RefreshServersMenu()
|
private void RefreshServersMenu()
|
||||||
{
|
{
|
||||||
menuServers.DropDownItems.Clear();
|
menuServers.DropDownItems.Clear();
|
||||||
|
menuServers2.SelectedIndexChanged -= MenuServers2_SelectedIndexChanged;
|
||||||
|
menuServers2.Items.Clear();
|
||||||
|
menuServers.Visible = false;
|
||||||
|
menuServers2.Visible = false;
|
||||||
|
|
||||||
List<ToolStripMenuItem> lst = new List<ToolStripMenuItem>();
|
if (config.vmess.Count > 20)
|
||||||
for (int k = 0; k < config.vmess.Count; k++)
|
|
||||||
{
|
{
|
||||||
VmessItem item = config.vmess[k];
|
for (int k = 0; k < config.vmess.Count; k++)
|
||||||
string name = item.getSummary();
|
{
|
||||||
|
VmessItem item = config.vmess[k];
|
||||||
|
string name = item.getSummary();
|
||||||
|
|
||||||
|
if (config.index.Equals(k))
|
||||||
|
{
|
||||||
|
name = $"√ {name}";
|
||||||
|
}
|
||||||
|
menuServers2.Items.Add(name);
|
||||||
|
|
||||||
ToolStripMenuItem ts = new ToolStripMenuItem(name)
|
|
||||||
{
|
|
||||||
Tag = k
|
|
||||||
};
|
|
||||||
if (config.index.Equals(k))
|
|
||||||
{
|
|
||||||
ts.Checked = true;
|
|
||||||
}
|
}
|
||||||
ts.Click += new EventHandler(ts_Click);
|
menuServers2.SelectedIndex = config.index;
|
||||||
lst.Add(ts);
|
menuServers2.SelectedIndexChanged += MenuServers2_SelectedIndexChanged;
|
||||||
|
menuServers2.Visible = true;
|
||||||
}
|
}
|
||||||
menuServers.DropDownItems.AddRange(lst.ToArray());
|
else
|
||||||
|
{
|
||||||
|
List<ToolStripMenuItem> lst = new List<ToolStripMenuItem>();
|
||||||
|
for (int k = 0; k < config.vmess.Count; k++)
|
||||||
|
{
|
||||||
|
VmessItem item = config.vmess[k];
|
||||||
|
string name = item.getSummary();
|
||||||
|
|
||||||
|
ToolStripMenuItem ts = new ToolStripMenuItem(name)
|
||||||
|
{
|
||||||
|
Tag = k
|
||||||
|
};
|
||||||
|
if (config.index.Equals(k))
|
||||||
|
{
|
||||||
|
ts.Checked = true;
|
||||||
|
}
|
||||||
|
ts.Click += new EventHandler(ts_Click);
|
||||||
|
lst.Add(ts);
|
||||||
|
}
|
||||||
|
menuServers.DropDownItems.AddRange(lst.ToArray());
|
||||||
|
menuServers.Visible = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MenuServers2_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetDefaultServer(((ToolStripComboBox)sender).SelectedIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ts_Click(object sender, EventArgs e)
|
private void ts_Click(object sender, EventArgs e)
|
||||||
@@ -339,8 +385,8 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void DisplayToolStatus()
|
private void DisplayToolStatus()
|
||||||
{
|
{
|
||||||
toolSslSocksPort.Text = $"{Global.Loopback}:{config.inbound[0].localPort}";
|
toolSslInboundInfo.Text = $"{Global.InboundSocks} {Global.Loopback}:{config.inbound[0].localPort} | "
|
||||||
toolSslHttpPort.Text = $"{Global.Loopback}:{Global.httpPort}";
|
+ $"{ Global.InboundHttp} { Global.Loopback}:{Global.httpPort}";
|
||||||
|
|
||||||
notifyMain.Icon = MainFormHandler.Instance.GetNotifyIcon(config, this.Icon);
|
notifyMain.Icon = MainFormHandler.Instance.GetNotifyIcon(config, this.Icon);
|
||||||
}
|
}
|
||||||
@@ -565,24 +611,18 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (int k = lvSelecteds.Count - 1; k >= 0; k--)
|
|
||||||
{
|
ConfigHandler.RemoveServer(ref config, lvSelecteds);
|
||||||
ConfigHandler.RemoveServer(ref config, lvSelecteds[k]);
|
|
||||||
}
|
|
||||||
RefreshServers();
|
RefreshServers();
|
||||||
LoadV2ray();
|
LoadV2ray();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void menuRemoveDuplicateServer_Click(object sender, EventArgs e)
|
private void menuRemoveDuplicateServer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Utils.DedupServerList(config.vmess, out List<VmessItem> servers, config.keepOlderDedupl);
|
|
||||||
int oldCount = config.vmess.Count;
|
int oldCount = config.vmess.Count;
|
||||||
int newCount = servers.Count;
|
ConfigHandler.DedupServerList(ref config);
|
||||||
if (servers != null)
|
int newCount = config.vmess.Count;
|
||||||
{
|
|
||||||
config.vmess = servers;
|
|
||||||
}
|
|
||||||
RefreshServers();
|
RefreshServers();
|
||||||
LoadV2ray();
|
LoadV2ray();
|
||||||
UI.Show(string.Format(UIRes.I18N("RemoveDuplicateServerResult"), oldCount, newCount));
|
UI.Show(string.Format(UIRes.I18N("RemoveDuplicateServerResult"), oldCount, newCount));
|
||||||
@@ -655,7 +695,8 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void tsbTestMe_Click(object sender, EventArgs e)
|
private void tsbTestMe_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
string result = httpProxyTest() + "ms";
|
SpeedtestHandler statistics = new SpeedtestHandler(ref config);
|
||||||
|
string result = statistics.RunAvailabilityCheck() + "ms";
|
||||||
AppendText(false, string.Format(UIRes.I18N("TestMeOutput"), result));
|
AppendText(false, string.Format(UIRes.I18N("TestMeOutput"), result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -667,12 +708,6 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int httpProxyTest()
|
|
||||||
{
|
|
||||||
SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lvSelecteds, "", UpdateSpeedtestHandler);
|
|
||||||
return statistics.RunAvailabilityCheck();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void menuExport2ClientConfig_Click(object sender, EventArgs e)
|
private void menuExport2ClientConfig_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
int index = GetLvSelectedIndex();
|
int index = GetLvSelectedIndex();
|
||||||
@@ -883,6 +918,10 @@ namespace v2rayN.Forms
|
|||||||
UpdateSubscriptionProcess();
|
UpdateSubscriptionProcess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void tsbBackupGuiNConfig_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MainFormHandler.Instance.BackupGuiNConfig(config);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
@@ -922,6 +961,13 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (!Utils.IsNullOrEmpty(MsgFilter))
|
||||||
|
{
|
||||||
|
if (!Regex.IsMatch(text, MsgFilter))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
//this.txtMsgBox.AppendText(text);
|
//this.txtMsgBox.AppendText(text);
|
||||||
ShowMsg(text);
|
ShowMsg(text);
|
||||||
}
|
}
|
||||||
@@ -949,7 +995,10 @@ namespace v2rayN.Forms
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void ClearMsg()
|
private void ClearMsg()
|
||||||
{
|
{
|
||||||
this.txtMsgBox.Clear();
|
txtMsgBox.Invoke((Action)delegate
|
||||||
|
{
|
||||||
|
txtMsgBox.Clear();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1072,6 +1121,15 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdateTaskHandler(bool success, string msg)
|
||||||
|
{
|
||||||
|
AppendText(false, msg);
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
Global.reloadV2ray = true;
|
||||||
|
LoadV2ray();
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 移动服务器
|
#region 移动服务器
|
||||||
@@ -1168,88 +1226,17 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
#region CheckUpdate
|
#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, 600);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
downloadHandle.DownloadFileAsync(url, null, 600);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void tsbCheckUpdateN_Click(object sender, EventArgs e)
|
private void tsbCheckUpdateN_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
//System.Diagnostics.Process.Start(Global.UpdateUrl);
|
void _updateUI(bool success, string msg)
|
||||||
DownloadHandle downloadHandle = null;
|
|
||||||
if (downloadHandle == null)
|
|
||||||
{
|
{
|
||||||
downloadHandle = new DownloadHandle();
|
AppendText(false, msg);
|
||||||
downloadHandle.AbsoluteCompleted += (sender2, args) =>
|
if (success)
|
||||||
{
|
{
|
||||||
if (args.Success)
|
menuExit_Click(null, null);
|
||||||
{
|
}
|
||||||
AppendText(false, string.Format(UIRes.I18N("MsgParsingSuccessfully"), "v2rayN"));
|
};
|
||||||
|
(new UpdateHandle()).CheckUpdateGuiN(config, _updateUI);
|
||||||
string url = args.Msg;
|
|
||||||
this.Invoke((MethodInvoker)(delegate
|
|
||||||
{
|
|
||||||
askToDownload(downloadHandle, url);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppendText(false, args.Msg);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
downloadHandle.UpdateCompleted += (sender2, args) =>
|
|
||||||
{
|
|
||||||
if (args.Success)
|
|
||||||
{
|
|
||||||
AppendText(false, UIRes.I18N("MsgDownloadV2rayCoreSuccessfully"));
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string fileName = Utils.GetPath(downloadHandle.DownloadFileName);
|
|
||||||
Process process = new Process
|
|
||||||
{
|
|
||||||
StartInfo = new ProcessStartInfo
|
|
||||||
{
|
|
||||||
FileName = "v2rayUpgrade.exe",
|
|
||||||
Arguments = "\"" + fileName + "\"",
|
|
||||||
WorkingDirectory = Utils.StartupPath()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
process.Start();
|
|
||||||
if (process.Id > 0)
|
|
||||||
{
|
|
||||||
menuExit_Click(null, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
AppendText(false, ex.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppendText(false, args.Msg);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
downloadHandle.Error += (sender2, args) =>
|
|
||||||
{
|
|
||||||
AppendText(true, args.GetException().Message);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
AppendText(false, string.Format(UIRes.I18N("MsgStartUpdating"), "v2rayN"));
|
|
||||||
downloadHandle.CheckUpdateAsync("v2rayN");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tsbCheckUpdateCore_Click(object sender, EventArgs e)
|
private void tsbCheckUpdateCore_Click(object sender, EventArgs e)
|
||||||
@@ -1264,67 +1251,51 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void CheckUpdateCore(string type)
|
private void CheckUpdateCore(string type)
|
||||||
{
|
{
|
||||||
DownloadHandle downloadHandle = null;
|
void _updateUI(bool success, string msg)
|
||||||
if (downloadHandle == null)
|
|
||||||
{
|
{
|
||||||
downloadHandle = new DownloadHandle();
|
AppendText(false, msg);
|
||||||
downloadHandle.AbsoluteCompleted += (sender2, args) =>
|
if (success)
|
||||||
{
|
{
|
||||||
if (args.Success)
|
CloseV2ray();
|
||||||
{
|
|
||||||
AppendText(false, string.Format(UIRes.I18N("MsgParsingSuccessfully"), "Core"));
|
|
||||||
|
|
||||||
string url = args.Msg;
|
string fileName = Utils.GetPath(Utils.GetDownloadFileName(msg));
|
||||||
this.Invoke((MethodInvoker)(delegate
|
FileManager.ZipExtractToFile(fileName, config.ignoreGeoUpdateCore ? "geo" : "");
|
||||||
{
|
|
||||||
askToDownload(downloadHandle, url);
|
AppendText(false, UIRes.I18N("MsgUpdateV2rayCoreSuccessfullyMore"));
|
||||||
}));
|
|
||||||
}
|
Global.reloadV2ray = true;
|
||||||
else
|
LoadV2ray();
|
||||||
{
|
|
||||||
AppendText(false, args.Msg);
|
AppendText(false, UIRes.I18N("MsgUpdateV2rayCoreSuccessfully"));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
downloadHandle.UpdateCompleted += (sender2, args) =>
|
(new UpdateHandle()).CheckUpdateCore(type, config, _updateUI);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void tsbCheckUpdateGeoSite_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
(new UpdateHandle()).UpdateGeoFile("geosite", config, (bool success, string msg) =>
|
||||||
|
{
|
||||||
|
AppendText(false, msg);
|
||||||
|
if (success)
|
||||||
{
|
{
|
||||||
if (args.Success)
|
Global.reloadV2ray = true;
|
||||||
{
|
LoadV2ray();
|
||||||
AppendText(false, UIRes.I18N("MsgDownloadV2rayCoreSuccessfully"));
|
}
|
||||||
AppendText(false, UIRes.I18N("MsgUnpacking"));
|
});
|
||||||
|
}
|
||||||
|
|
||||||
try
|
private void tsbCheckUpdateGeoIP_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
CloseV2ray();
|
(new UpdateHandle()).UpdateGeoFile("geoip", config, (bool success, string msg) =>
|
||||||
|
{
|
||||||
string fileName = downloadHandle.DownloadFileName;
|
AppendText(false, msg);
|
||||||
fileName = Utils.GetPath(fileName);
|
if (success)
|
||||||
FileManager.ZipExtractToFile(fileName, config.ignoreGeoUpdateCore ? "geo" : "");
|
|
||||||
|
|
||||||
AppendText(false, UIRes.I18N("MsgUpdateV2rayCoreSuccessfullyMore"));
|
|
||||||
|
|
||||||
Global.reloadV2ray = true;
|
|
||||||
LoadV2ray();
|
|
||||||
|
|
||||||
AppendText(false, UIRes.I18N("MsgUpdateV2rayCoreSuccessfully"));
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
AppendText(false, ex.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppendText(false, args.Msg);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
downloadHandle.Error += (sender2, args) =>
|
|
||||||
{
|
{
|
||||||
AppendText(true, args.GetException().Message);
|
Global.reloadV2ray = true;
|
||||||
};
|
LoadV2ray();
|
||||||
}
|
}
|
||||||
|
});
|
||||||
AppendText(false, string.Format(UIRes.I18N("MsgStartUpdating"), "Core"));
|
|
||||||
downloadHandle.CheckUpdateAsync(type);
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -1398,15 +1369,16 @@ namespace v2rayN.Forms
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void UpdateSubscriptionProcess()
|
private void UpdateSubscriptionProcess()
|
||||||
{
|
{
|
||||||
void _updateUI(bool refresh, string msg)
|
void _updateUI(bool success, string msg)
|
||||||
{
|
{
|
||||||
AppendText(false, msg);
|
AppendText(false, msg);
|
||||||
if (refresh)
|
if (success)
|
||||||
{
|
{
|
||||||
RefreshServers();
|
RefreshServers();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
MainFormHandler.Instance.UpdateSubscriptionProcess(config, _updateUI);
|
|
||||||
|
(new UpdateHandle()).UpdateSubscriptionProcess(config, _updateUI);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tsbQRCodeSwitch_CheckedChanged(object sender, EventArgs e)
|
private void tsbQRCodeSwitch_CheckedChanged(object sender, EventArgs e)
|
||||||
@@ -1450,6 +1422,7 @@ namespace v2rayN.Forms
|
|||||||
menuRoutings.Visible = config.enableRoutingAdvanced;
|
menuRoutings.Visible = config.enableRoutingAdvanced;
|
||||||
if (!config.enableRoutingAdvanced)
|
if (!config.enableRoutingAdvanced)
|
||||||
{
|
{
|
||||||
|
toolSslRoutingRule.Text = string.Empty;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1472,6 +1445,7 @@ namespace v2rayN.Forms
|
|||||||
if (config.routingIndex.Equals(k))
|
if (config.routingIndex.Equals(k))
|
||||||
{
|
{
|
||||||
ts.Checked = true;
|
ts.Checked = true;
|
||||||
|
toolSslRoutingRule.Text = item.remarks;
|
||||||
}
|
}
|
||||||
ts.Click += new EventHandler(ts_Routing_Click);
|
ts.Click += new EventHandler(ts_Routing_Click);
|
||||||
lst.Add(ts);
|
lst.Add(ts);
|
||||||
@@ -1542,7 +1516,16 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
private void menuMsgBoxFilter_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var fm = new MsgFilterSetForm();
|
||||||
|
fm.MsgFilter = MsgFilter;
|
||||||
|
if (fm.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
MsgFilter = fm.MsgFilter;
|
||||||
|
gbMsgTitle.Text = string.Format(UIRes.I18N("MsgInformationTitle"), MsgFilter);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -318,78 +318,15 @@
|
|||||||
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuKeepClear.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>172, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuKeepClear.Text" xml:space="preserve">
|
|
||||||
<value>清除系统代理</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuGlobal.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>172, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuGlobal.Text" xml:space="preserve">
|
|
||||||
<value>自动配置系统代理</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuKeepNothing.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>172, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuKeepNothing.Text" xml:space="preserve">
|
|
||||||
<value>不改变系统代理</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuSysAgentMode.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>195, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuSysAgentMode.Text" xml:space="preserve">
|
|
||||||
<value>系统代理</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>195, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuRoutings.Text" xml:space="preserve">
|
|
||||||
<value>路由</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServers.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>195, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServers.Text" xml:space="preserve">
|
|
||||||
<value>服务器</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripSeparator13.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>192, 6</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuAddServers2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>195, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuAddServers2.Text" xml:space="preserve">
|
|
||||||
<value>从剪贴板导入批量URL</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuScanScreen2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>195, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuScanScreen2.Text" xml:space="preserve">
|
|
||||||
<value>扫描屏幕上的二维码</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuUpdateSubscriptions.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>195, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuUpdateSubscriptions.Text" xml:space="preserve">
|
|
||||||
<value>更新订阅</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>192, 6</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuExit.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>195, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuExit.Text" xml:space="preserve">
|
|
||||||
<value>退出</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmsMain.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>196, 170</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
<value>服务器列表</value>
|
<value>服务器列表</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="gbMsgTitle.Text" xml:space="preserve">
|
||||||
|
<value>信息</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>222, 114</value>
|
||||||
|
</data>
|
||||||
<data name="menuMsgBoxSelectAll.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuMsgBoxSelectAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>221, 22</value>
|
<value>221, 22</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -414,14 +351,92 @@
|
|||||||
<data name="menuMsgBoxAddRoutingRule.Text" xml:space="preserve">
|
<data name="menuMsgBoxAddRoutingRule.Text" xml:space="preserve">
|
||||||
<value>快速添加路由规则 (Ctrl+V)</value>
|
<value>快速添加路由规则 (Ctrl+V)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuMsgBoxFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>222, 114</value>
|
<value>221, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxFilter.Text" xml:space="preserve">
|
||||||
|
<value>设置信息过滤器</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolSslServerSpeed.Text" xml:space="preserve">
|
<data name="toolSslServerSpeed.Text" xml:space="preserve">
|
||||||
<value>网速显示未启用</value>
|
<value>网速显示未启用</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
<data name="menuSysAgentMode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>信息</value>
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSysAgentMode.Text" xml:space="preserve">
|
||||||
|
<value>系统代理</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRoutings.Text" xml:space="preserve">
|
||||||
|
<value>路由</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuServers.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuServers.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuServers2.ToolTipText" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>257, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAddServers2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAddServers2.Text" xml:space="preserve">
|
||||||
|
<value>从剪贴板导入批量URL</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuScanScreen2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuScanScreen2.Text" xml:space="preserve">
|
||||||
|
<value>扫描屏幕上的二维码</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuUpdateSubscriptions.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuUpdateSubscriptions.Text" xml:space="preserve">
|
||||||
|
<value>更新订阅</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>257, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuExit.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuExit.Text" xml:space="preserve">
|
||||||
|
<value>退出</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmsMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>261, 199</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuKeepClear.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>172, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuKeepClear.Text" xml:space="preserve">
|
||||||
|
<value>清除系统代理</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuGlobal.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>172, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuGlobal.Text" xml:space="preserve">
|
||||||
|
<value>自动配置系统代理</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuKeepNothing.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>172, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuKeepNothing.Text" xml:space="preserve">
|
||||||
|
<value>不改变系统代理</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbSub.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>61, 53</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbSub.Text" xml:space="preserve">
|
||||||
|
<value> 订阅 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbSubSetting.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbSubSetting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>124, 22</value>
|
<value>124, 22</value>
|
||||||
@@ -435,36 +450,39 @@
|
|||||||
<data name="tsbSubUpdate.Text" xml:space="preserve">
|
<data name="tsbSubUpdate.Text" xml:space="preserve">
|
||||||
<value>更新订阅</value>
|
<value>更新订阅</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbSub.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>61, 53</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbSub.Text" xml:space="preserve">
|
|
||||||
<value> 订阅 </value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbQRCodeSwitch.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbQRCodeSwitch.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>52, 53</value>
|
<value>52, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbQRCodeSwitch.Text" xml:space="preserve">
|
<data name="tsbQRCodeSwitch.Text" xml:space="preserve">
|
||||||
<value> 分享 </value>
|
<value> 分享 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbOptionSetting.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>124, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbOptionSetting.Text" xml:space="preserve">
|
|
||||||
<value>参数设置</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbRoutingSetting.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>124, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbRoutingSetting.Text" xml:space="preserve">
|
|
||||||
<value>路由设置</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbSetting.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbSetting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>61, 53</value>
|
<value>61, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbSetting.Text" xml:space="preserve">
|
<data name="tsbSetting.Text" xml:space="preserve">
|
||||||
<value> 设置 </value>
|
<value> 设置 </value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsbOptionSetting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbOptionSetting.Text" xml:space="preserve">
|
||||||
|
<value>参数设置</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbRoutingSetting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbRoutingSetting.Text" xml:space="preserve">
|
||||||
|
<value>路由设置</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator14.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>186, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbBackupGuiNConfig.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbBackupGuiNConfig.Text" xml:space="preserve">
|
||||||
|
<value>备份v2rayN配置文件</value>
|
||||||
|
</data>
|
||||||
<data name="tsbReload.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="tsbReload.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
@@ -482,35 +500,38 @@
|
|||||||
<data name="tsbReload.Text" xml:space="preserve">
|
<data name="tsbReload.Text" xml:space="preserve">
|
||||||
<value> 重启服务 </value>
|
<value> 重启服务 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdateN.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>135, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbCheckUpdateN.Text" xml:space="preserve">
|
|
||||||
<value>v2rayN</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbCheckUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>135, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbCheckUpdateCore.Text" xml:space="preserve">
|
|
||||||
<value>v2fly-Core</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbCheckUpdateXrayCore.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>135, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbCheckUpdateXrayCore.Text" xml:space="preserve">
|
|
||||||
<value>Xray-Core</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbCheckUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbCheckUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>85, 53</value>
|
<value>85, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdate.Text" xml:space="preserve">
|
<data name="tsbCheckUpdate.Text" xml:space="preserve">
|
||||||
<value> 检查更新 </value>
|
<value> 检查更新 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbAbout.Text" xml:space="preserve">
|
<data name="tsbCheckUpdateN.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>v2rayN 项目</value>
|
<value>168, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbV2rayWebsite.Text" xml:space="preserve">
|
<data name="tsbCheckUpdateN.Text" xml:space="preserve">
|
||||||
<value>V2Ray 官网</value>
|
<value>v2rayN</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbCheckUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>168, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbCheckUpdateCore.Text" xml:space="preserve">
|
||||||
|
<value>v2fly-Core</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbCheckUpdateXrayCore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>168, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbCheckUpdateXrayCore.Text" xml:space="preserve">
|
||||||
|
<value>Xray-Core</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator15.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>165, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbCheckUpdateGeoSite.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>168, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbCheckUpdateGeoIP.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>168, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>69, 53</value>
|
<value>69, 53</value>
|
||||||
@@ -518,6 +539,12 @@
|
|||||||
<data name="tsbHelp.Text" xml:space="preserve">
|
<data name="tsbHelp.Text" xml:space="preserve">
|
||||||
<value> 帮助 </value>
|
<value> 帮助 </value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsbAbout.Text" xml:space="preserve">
|
||||||
|
<value>v2rayN 项目</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbV2rayWebsite.Text" xml:space="preserve">
|
||||||
|
<value>V2Ray 官网</value>
|
||||||
|
</data>
|
||||||
<data name="tsbPromotion.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbPromotion.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>68, 53</value>
|
<value>68, 53</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
98
v2rayN/v2rayN/Forms/MsgFilterSetForm.Designer.cs
generated
Normal file
98
v2rayN/v2rayN/Forms/MsgFilterSetForm.Designer.cs
generated
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class MsgFilterSetForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MsgFilterSetForm));
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtMsgFilter = new System.Windows.Forms.TextBox();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.txtMsgFilter);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtMsgFilter
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtMsgFilter, "txtMsgFilter");
|
||||||
|
this.txtMsgFilter.Name = "txtMsgFilter";
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
//
|
||||||
|
// btnClose
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.btnClose.Name = "btnClose";
|
||||||
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnOK, "btnOK");
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// MsgFilterSetForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Name = "MsgFilterSetForm";
|
||||||
|
this.Load += new System.EventHandler(this.MsgFilterSetForm_Load);
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.TextBox txtMsgFilter;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
}
|
||||||
|
}
|
||||||
38
v2rayN/v2rayN/Forms/MsgFilterSetForm.cs
Normal file
38
v2rayN/v2rayN/Forms/MsgFilterSetForm.cs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class MsgFilterSetForm : BaseForm
|
||||||
|
{
|
||||||
|
public string MsgFilter { get; set; }
|
||||||
|
|
||||||
|
public MsgFilterSetForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MsgFilterSetForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
txtMsgFilter.Text = MsgFilter;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MsgFilter = txtMsgFilter.Text;
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
267
v2rayN/v2rayN/Forms/MsgFilterSetForm.resx
Normal file
267
v2rayN/v2rayN/Forms/MsgFilterSetForm.resx
Normal file
@@ -0,0 +1,267 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtMsgFilter.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtMsgFilter.Name" xml:space="preserve">
|
||||||
|
<value>txtMsgFilter</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtMsgFilter.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="txtMsgFilter.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>41, 29</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>490, 60</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="txtMsgFilter.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>396, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>MsgFilterSetForm</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtMsgFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>409, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 76</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtMsgFilter.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>490, 76</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Filter</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>490, 136</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>303, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>MsgFilterSetForm</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
132
v2rayN/v2rayN/Forms/MsgFilterSetForm.zh-Hans.resx
Normal file
132
v2rayN/v2rayN/Forms/MsgFilterSetForm.zh-Hans.resx
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>过滤器</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>取消(&C)</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>设置过滤器</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
89
v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
generated
89
v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
generated
@@ -69,6 +69,8 @@
|
|||||||
this.txtKcpmtu = new System.Windows.Forms.TextBox();
|
this.txtKcpmtu = new System.Windows.Forms.TextBox();
|
||||||
this.label6 = new System.Windows.Forms.Label();
|
this.label6 = new System.Windows.Forms.Label();
|
||||||
this.tabPage7 = new System.Windows.Forms.TabPage();
|
this.tabPage7 = new System.Windows.Forms.TabPage();
|
||||||
|
this.txtautoUpdateInterval = new System.Windows.Forms.TextBox();
|
||||||
|
this.label15 = new System.Windows.Forms.Label();
|
||||||
this.chkIgnoreGeoUpdateCore = new System.Windows.Forms.CheckBox();
|
this.chkIgnoreGeoUpdateCore = new System.Windows.Forms.CheckBox();
|
||||||
this.cmbCoreType = new System.Windows.Forms.ComboBox();
|
this.cmbCoreType = new System.Windows.Forms.ComboBox();
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
@@ -78,6 +80,11 @@
|
|||||||
this.chkEnableStatistics = new System.Windows.Forms.CheckBox();
|
this.chkEnableStatistics = new System.Windows.Forms.CheckBox();
|
||||||
this.chkAllowLANConn = new System.Windows.Forms.CheckBox();
|
this.chkAllowLANConn = new System.Windows.Forms.CheckBox();
|
||||||
this.chkAutoRun = new System.Windows.Forms.CheckBox();
|
this.chkAutoRun = new System.Windows.Forms.CheckBox();
|
||||||
|
this.tabPage3 = new System.Windows.Forms.TabPage();
|
||||||
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.label13 = new System.Windows.Forms.Label();
|
||||||
|
this.label12 = new System.Windows.Forms.Label();
|
||||||
|
this.txtsystemProxyExceptions = new System.Windows.Forms.TextBox();
|
||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
@@ -87,37 +94,39 @@
|
|||||||
this.tabPage2.SuspendLayout();
|
this.tabPage2.SuspendLayout();
|
||||||
this.tabPage6.SuspendLayout();
|
this.tabPage6.SuspendLayout();
|
||||||
this.tabPage7.SuspendLayout();
|
this.tabPage7.SuspendLayout();
|
||||||
|
this.tabPage3.SuspendLayout();
|
||||||
|
this.groupBox2.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.btnClose, "btnClose");
|
|
||||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
this.btnClose.Name = "btnClose";
|
this.btnClose.Name = "btnClose";
|
||||||
this.btnClose.UseVisualStyleBackColor = true;
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
//
|
//
|
||||||
// tabControl1
|
// tabControl1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabControl1, "tabControl1");
|
|
||||||
this.tabControl1.Controls.Add(this.tabPage1);
|
this.tabControl1.Controls.Add(this.tabPage1);
|
||||||
this.tabControl1.Controls.Add(this.tabPage2);
|
this.tabControl1.Controls.Add(this.tabPage2);
|
||||||
this.tabControl1.Controls.Add(this.tabPage6);
|
this.tabControl1.Controls.Add(this.tabPage6);
|
||||||
this.tabControl1.Controls.Add(this.tabPage7);
|
this.tabControl1.Controls.Add(this.tabPage7);
|
||||||
|
this.tabControl1.Controls.Add(this.tabPage3);
|
||||||
|
resources.ApplyResources(this.tabControl1, "tabControl1");
|
||||||
this.tabControl1.Name = "tabControl1";
|
this.tabControl1.Name = "tabControl1";
|
||||||
this.tabControl1.SelectedIndex = 0;
|
this.tabControl1.SelectedIndex = 0;
|
||||||
//
|
//
|
||||||
// tabPage1
|
// tabPage1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabPage1, "tabPage1");
|
|
||||||
this.tabPage1.Controls.Add(this.groupBox1);
|
this.tabPage1.Controls.Add(this.groupBox1);
|
||||||
|
resources.ApplyResources(this.tabPage1, "tabPage1");
|
||||||
this.tabPage1.Name = "tabPage1";
|
this.tabPage1.Name = "tabPage1";
|
||||||
this.tabPage1.UseVisualStyleBackColor = true;
|
this.tabPage1.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
|
||||||
this.groupBox1.Controls.Add(this.chkdefAllowInsecure);
|
this.groupBox1.Controls.Add(this.chkdefAllowInsecure);
|
||||||
this.groupBox1.Controls.Add(this.chksniffingEnabled2);
|
this.groupBox1.Controls.Add(this.chksniffingEnabled2);
|
||||||
this.groupBox1.Controls.Add(this.chksniffingEnabled);
|
this.groupBox1.Controls.Add(this.chksniffingEnabled);
|
||||||
@@ -135,6 +144,7 @@
|
|||||||
this.groupBox1.Controls.Add(this.label5);
|
this.groupBox1.Controls.Add(this.label5);
|
||||||
this.groupBox1.Controls.Add(this.txtlocalPort);
|
this.groupBox1.Controls.Add(this.txtlocalPort);
|
||||||
this.groupBox1.Controls.Add(this.label2);
|
this.groupBox1.Controls.Add(this.label2);
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -177,12 +187,12 @@
|
|||||||
//
|
//
|
||||||
// cmbprotocol2
|
// cmbprotocol2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cmbprotocol2, "cmbprotocol2");
|
|
||||||
this.cmbprotocol2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbprotocol2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbprotocol2.FormattingEnabled = true;
|
this.cmbprotocol2.FormattingEnabled = true;
|
||||||
this.cmbprotocol2.Items.AddRange(new object[] {
|
this.cmbprotocol2.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbprotocol2.Items"),
|
resources.GetString("cmbprotocol2.Items"),
|
||||||
resources.GetString("cmbprotocol2.Items1")});
|
resources.GetString("cmbprotocol2.Items1")});
|
||||||
|
resources.ApplyResources(this.cmbprotocol2, "cmbprotocol2");
|
||||||
this.cmbprotocol2.Name = "cmbprotocol2";
|
this.cmbprotocol2.Name = "cmbprotocol2";
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
@@ -197,8 +207,8 @@
|
|||||||
//
|
//
|
||||||
// cmbprotocol
|
// cmbprotocol
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cmbprotocol, "cmbprotocol");
|
|
||||||
this.cmbprotocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbprotocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
resources.ApplyResources(this.cmbprotocol, "cmbprotocol");
|
||||||
this.cmbprotocol.FormattingEnabled = true;
|
this.cmbprotocol.FormattingEnabled = true;
|
||||||
this.cmbprotocol.Items.AddRange(new object[] {
|
this.cmbprotocol.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbprotocol.Items"),
|
resources.GetString("cmbprotocol.Items"),
|
||||||
@@ -224,7 +234,6 @@
|
|||||||
//
|
//
|
||||||
// cmbloglevel
|
// cmbloglevel
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cmbloglevel, "cmbloglevel");
|
|
||||||
this.cmbloglevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbloglevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbloglevel.FormattingEnabled = true;
|
this.cmbloglevel.FormattingEnabled = true;
|
||||||
this.cmbloglevel.Items.AddRange(new object[] {
|
this.cmbloglevel.Items.AddRange(new object[] {
|
||||||
@@ -233,6 +242,7 @@
|
|||||||
resources.GetString("cmbloglevel.Items2"),
|
resources.GetString("cmbloglevel.Items2"),
|
||||||
resources.GetString("cmbloglevel.Items3"),
|
resources.GetString("cmbloglevel.Items3"),
|
||||||
resources.GetString("cmbloglevel.Items4")});
|
resources.GetString("cmbloglevel.Items4")});
|
||||||
|
resources.ApplyResources(this.cmbloglevel, "cmbloglevel");
|
||||||
this.cmbloglevel.Name = "cmbloglevel";
|
this.cmbloglevel.Name = "cmbloglevel";
|
||||||
//
|
//
|
||||||
// label5
|
// label5
|
||||||
@@ -252,10 +262,10 @@
|
|||||||
//
|
//
|
||||||
// tabPage2
|
// tabPage2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabPage2, "tabPage2");
|
|
||||||
this.tabPage2.Controls.Add(this.linkDnsObjectDoc);
|
this.tabPage2.Controls.Add(this.linkDnsObjectDoc);
|
||||||
this.tabPage2.Controls.Add(this.txtremoteDNS);
|
this.tabPage2.Controls.Add(this.txtremoteDNS);
|
||||||
this.tabPage2.Controls.Add(this.label14);
|
this.tabPage2.Controls.Add(this.label14);
|
||||||
|
resources.ApplyResources(this.tabPage2, "tabPage2");
|
||||||
this.tabPage2.Name = "tabPage2";
|
this.tabPage2.Name = "tabPage2";
|
||||||
this.tabPage2.UseVisualStyleBackColor = true;
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
@@ -278,7 +288,6 @@
|
|||||||
//
|
//
|
||||||
// tabPage6
|
// tabPage6
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabPage6, "tabPage6");
|
|
||||||
this.tabPage6.Controls.Add(this.chkKcpcongestion);
|
this.tabPage6.Controls.Add(this.chkKcpcongestion);
|
||||||
this.tabPage6.Controls.Add(this.txtKcpwriteBufferSize);
|
this.tabPage6.Controls.Add(this.txtKcpwriteBufferSize);
|
||||||
this.tabPage6.Controls.Add(this.label10);
|
this.tabPage6.Controls.Add(this.label10);
|
||||||
@@ -292,6 +301,7 @@
|
|||||||
this.tabPage6.Controls.Add(this.label7);
|
this.tabPage6.Controls.Add(this.label7);
|
||||||
this.tabPage6.Controls.Add(this.txtKcpmtu);
|
this.tabPage6.Controls.Add(this.txtKcpmtu);
|
||||||
this.tabPage6.Controls.Add(this.label6);
|
this.tabPage6.Controls.Add(this.label6);
|
||||||
|
resources.ApplyResources(this.tabPage6, "tabPage6");
|
||||||
this.tabPage6.Name = "tabPage6";
|
this.tabPage6.Name = "tabPage6";
|
||||||
this.tabPage6.UseVisualStyleBackColor = true;
|
this.tabPage6.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
@@ -363,7 +373,8 @@
|
|||||||
//
|
//
|
||||||
// tabPage7
|
// tabPage7
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabPage7, "tabPage7");
|
this.tabPage7.Controls.Add(this.txtautoUpdateInterval);
|
||||||
|
this.tabPage7.Controls.Add(this.label15);
|
||||||
this.tabPage7.Controls.Add(this.chkIgnoreGeoUpdateCore);
|
this.tabPage7.Controls.Add(this.chkIgnoreGeoUpdateCore);
|
||||||
this.tabPage7.Controls.Add(this.cmbCoreType);
|
this.tabPage7.Controls.Add(this.cmbCoreType);
|
||||||
this.tabPage7.Controls.Add(this.label4);
|
this.tabPage7.Controls.Add(this.label4);
|
||||||
@@ -373,9 +384,20 @@
|
|||||||
this.tabPage7.Controls.Add(this.chkEnableStatistics);
|
this.tabPage7.Controls.Add(this.chkEnableStatistics);
|
||||||
this.tabPage7.Controls.Add(this.chkAllowLANConn);
|
this.tabPage7.Controls.Add(this.chkAllowLANConn);
|
||||||
this.tabPage7.Controls.Add(this.chkAutoRun);
|
this.tabPage7.Controls.Add(this.chkAutoRun);
|
||||||
|
resources.ApplyResources(this.tabPage7, "tabPage7");
|
||||||
this.tabPage7.Name = "tabPage7";
|
this.tabPage7.Name = "tabPage7";
|
||||||
this.tabPage7.UseVisualStyleBackColor = true;
|
this.tabPage7.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// txtautoUpdateInterval
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtautoUpdateInterval, "txtautoUpdateInterval");
|
||||||
|
this.txtautoUpdateInterval.Name = "txtautoUpdateInterval";
|
||||||
|
//
|
||||||
|
// label15
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label15, "label15");
|
||||||
|
this.label15.Name = "label15";
|
||||||
|
//
|
||||||
// chkIgnoreGeoUpdateCore
|
// chkIgnoreGeoUpdateCore
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.chkIgnoreGeoUpdateCore, "chkIgnoreGeoUpdateCore");
|
resources.ApplyResources(this.chkIgnoreGeoUpdateCore, "chkIgnoreGeoUpdateCore");
|
||||||
@@ -384,12 +406,12 @@
|
|||||||
//
|
//
|
||||||
// cmbCoreType
|
// cmbCoreType
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cmbCoreType, "cmbCoreType");
|
|
||||||
this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbCoreType.FormattingEnabled = true;
|
this.cmbCoreType.FormattingEnabled = true;
|
||||||
this.cmbCoreType.Items.AddRange(new object[] {
|
this.cmbCoreType.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbCoreType.Items"),
|
resources.GetString("cmbCoreType.Items"),
|
||||||
resources.GetString("cmbCoreType.Items1")});
|
resources.GetString("cmbCoreType.Items1")});
|
||||||
|
resources.ApplyResources(this.cmbCoreType, "cmbCoreType");
|
||||||
this.cmbCoreType.Name = "cmbCoreType";
|
this.cmbCoreType.Name = "cmbCoreType";
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
@@ -405,9 +427,9 @@
|
|||||||
//
|
//
|
||||||
// cbFreshrate
|
// cbFreshrate
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cbFreshrate, "cbFreshrate");
|
|
||||||
this.cbFreshrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cbFreshrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cbFreshrate.FormattingEnabled = true;
|
this.cbFreshrate.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cbFreshrate, "cbFreshrate");
|
||||||
this.cbFreshrate.Name = "cbFreshrate";
|
this.cbFreshrate.Name = "cbFreshrate";
|
||||||
//
|
//
|
||||||
// lbFreshrate
|
// lbFreshrate
|
||||||
@@ -433,11 +455,42 @@
|
|||||||
this.chkAutoRun.Name = "chkAutoRun";
|
this.chkAutoRun.Name = "chkAutoRun";
|
||||||
this.chkAutoRun.UseVisualStyleBackColor = true;
|
this.chkAutoRun.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// tabPage3
|
||||||
|
//
|
||||||
|
this.tabPage3.Controls.Add(this.groupBox2);
|
||||||
|
resources.ApplyResources(this.tabPage3, "tabPage3");
|
||||||
|
this.tabPage3.Name = "tabPage3";
|
||||||
|
this.tabPage3.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// groupBox2
|
||||||
|
//
|
||||||
|
this.groupBox2.Controls.Add(this.label13);
|
||||||
|
this.groupBox2.Controls.Add(this.label12);
|
||||||
|
this.groupBox2.Controls.Add(this.txtsystemProxyExceptions);
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.TabStop = false;
|
||||||
|
//
|
||||||
|
// label13
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label13, "label13");
|
||||||
|
this.label13.Name = "label13";
|
||||||
|
//
|
||||||
|
// label12
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label12, "label12");
|
||||||
|
this.label12.Name = "label12";
|
||||||
|
//
|
||||||
|
// txtsystemProxyExceptions
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtsystemProxyExceptions, "txtsystemProxyExceptions");
|
||||||
|
this.txtsystemProxyExceptions.Name = "txtsystemProxyExceptions";
|
||||||
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.panel2, "panel2");
|
|
||||||
this.panel2.Controls.Add(this.btnClose);
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
this.panel2.Controls.Add(this.btnOK);
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
//
|
//
|
||||||
// btnOK
|
// btnOK
|
||||||
@@ -473,6 +526,9 @@
|
|||||||
this.tabPage6.PerformLayout();
|
this.tabPage6.PerformLayout();
|
||||||
this.tabPage7.ResumeLayout(false);
|
this.tabPage7.ResumeLayout(false);
|
||||||
this.tabPage7.PerformLayout();
|
this.tabPage7.PerformLayout();
|
||||||
|
this.tabPage3.ResumeLayout(false);
|
||||||
|
this.groupBox2.ResumeLayout(false);
|
||||||
|
this.groupBox2.PerformLayout();
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
@@ -532,5 +588,12 @@
|
|||||||
private System.Windows.Forms.ComboBox cmbCoreType;
|
private System.Windows.Forms.ComboBox cmbCoreType;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
private System.Windows.Forms.CheckBox chkIgnoreGeoUpdateCore;
|
private System.Windows.Forms.CheckBox chkIgnoreGeoUpdateCore;
|
||||||
|
private System.Windows.Forms.TabPage tabPage3;
|
||||||
|
private System.Windows.Forms.TextBox txtsystemProxyExceptions;
|
||||||
|
private System.Windows.Forms.Label label12;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
|
private System.Windows.Forms.Label label13;
|
||||||
|
private System.Windows.Forms.TextBox txtautoUpdateInterval;
|
||||||
|
private System.Windows.Forms.Label label15;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,8 +65,9 @@ namespace v2rayN.Forms
|
|||||||
//remoteDNS
|
//remoteDNS
|
||||||
txtremoteDNS.Text = config.remoteDNS;
|
txtremoteDNS.Text = config.remoteDNS;
|
||||||
|
|
||||||
|
|
||||||
chkdefAllowInsecure.Checked = config.defAllowInsecure;
|
chkdefAllowInsecure.Checked = config.defAllowInsecure;
|
||||||
|
|
||||||
|
txtsystemProxyExceptions.Text = config.systemProxyExceptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -122,6 +123,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore;
|
chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore;
|
||||||
cmbCoreType.SelectedIndex = (int)config.coreType;
|
cmbCoreType.SelectedIndex = (int)config.coreType;
|
||||||
|
txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString();
|
||||||
}
|
}
|
||||||
private void btnOK_Click(object sender, EventArgs e)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -179,6 +181,21 @@ namespace v2rayN.Forms
|
|||||||
UI.Show(UIRes.I18N("PleaseSelectProtocol"));
|
UI.Show(UIRes.I18N("PleaseSelectProtocol"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var remoteDNS = txtremoteDNS.Text.TrimEx();
|
||||||
|
var obj = Utils.ParseJson(remoteDNS);
|
||||||
|
if (obj != null && obj.ContainsKey("servers"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (remoteDNS.Contains("{") || remoteDNS.Contains("}"))
|
||||||
|
{
|
||||||
|
UI.Show(UIRes.I18N("FillCorrectDNSText"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
config.inbound[0].localPort = Utils.ToInt(localPort);
|
config.inbound[0].localPort = Utils.ToInt(localPort);
|
||||||
config.inbound[0].protocol = protocol;
|
config.inbound[0].protocol = protocol;
|
||||||
config.inbound[0].udpEnabled = udpEnabled;
|
config.inbound[0].udpEnabled = udpEnabled;
|
||||||
@@ -225,12 +242,13 @@ namespace v2rayN.Forms
|
|||||||
//Mux
|
//Mux
|
||||||
config.muxEnabled = muxEnabled;
|
config.muxEnabled = muxEnabled;
|
||||||
|
|
||||||
//remoteDNS
|
//remoteDNS
|
||||||
config.remoteDNS = txtremoteDNS.Text.TrimEx();
|
config.remoteDNS = txtremoteDNS.Text.TrimEx();
|
||||||
|
|
||||||
|
|
||||||
config.defAllowInsecure = chkdefAllowInsecure.Checked;
|
config.defAllowInsecure = chkdefAllowInsecure.Checked;
|
||||||
|
|
||||||
|
config.systemProxyExceptions = txtsystemProxyExceptions.Text.TrimEx();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -288,6 +306,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked;
|
config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked;
|
||||||
config.coreType = (ECoreType)cmbCoreType.SelectedIndex;
|
config.coreType = (ECoreType)cmbCoreType.SelectedIndex;
|
||||||
|
config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -121,11 +121,23 @@
|
|||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="tabControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>662, 469</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>654, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage1.Text" xml:space="preserve">
|
||||||
|
<value> Core:基础设置 </value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>648, 437</value>
|
||||||
|
</data>
|
||||||
<data name="chkdefAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkdefAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>336, 16</value>
|
<value>336, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkdefAllowInsecure.Text" xml:space="preserve">
|
<data name="chkdefAllowInsecure.Text" xml:space="preserve">
|
||||||
<value>底层传输安全选tls时,默认跳过证书验证(allowInsecure)</value>
|
<value>传输层安全选tls时,默认跳过证书验证(allowInsecure)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chksniffingEnabled2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chksniffingEnabled2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>96, 16</value>
|
<value>96, 16</value>
|
||||||
@@ -193,14 +205,11 @@
|
|||||||
<data name="label2.Text" xml:space="preserve">
|
<data name="label2.Text" xml:space="preserve">
|
||||||
<value>本地监听端口</value>
|
<value>本地监听端口</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>648, 437</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>654, 443</value>
|
<value>654, 443</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage1.Text" xml:space="preserve">
|
<data name="tabPage2.Text" xml:space="preserve">
|
||||||
<value> Core:基础设置 </value>
|
<value> Core:DNS设置 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="linkDnsObjectDoc.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="linkDnsObjectDoc.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>161, 12</value>
|
<value>161, 12</value>
|
||||||
@@ -214,18 +223,27 @@
|
|||||||
<data name="label14.Text" xml:space="preserve">
|
<data name="label14.Text" xml:space="preserve">
|
||||||
<value>自定义DNS(可多个,用逗号(,)隔开)</value>
|
<value>自定义DNS(可多个,用逗号(,)隔开)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>654, 443</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage2.Text" xml:space="preserve">
|
|
||||||
<value> Core:DNS设置 </value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage6.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tabPage6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>654, 443</value>
|
<value>654, 443</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage6.Text" xml:space="preserve">
|
<data name="tabPage6.Text" xml:space="preserve">
|
||||||
<value> Core:KCP设置 </value>
|
<value> Core:KCP设置 </value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tabPage7.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>654, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage7.Text" xml:space="preserve">
|
||||||
|
<value> v2rayN设置 </value>
|
||||||
|
</data>
|
||||||
|
<data name="txtautoUpdateInterval.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>255, 156</value>
|
||||||
|
</data>
|
||||||
|
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>191, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label15.Text" xml:space="preserve">
|
||||||
|
<value>自动更新Geo文件的间隔(单位小时)</value>
|
||||||
|
</data>
|
||||||
<data name="chkIgnoreGeoUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkIgnoreGeoUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>150, 16</value>
|
<value>150, 16</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -268,21 +286,36 @@
|
|||||||
<data name="chkAutoRun.Text" xml:space="preserve">
|
<data name="chkAutoRun.Text" xml:space="preserve">
|
||||||
<value>开机自动启动(可能会不成功)</value>
|
<value>开机自动启动(可能会不成功)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage7.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>654, 443</value>
|
<value>654, 443</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage7.Text" xml:space="preserve">
|
<data name="tabPage3.Text" xml:space="preserve">
|
||||||
<value> v2rayN设置 </value>
|
<value> 系统代理设置 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabControl1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>662, 469</value>
|
<value>654, 443</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>例外</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Text" xml:space="preserve">
|
||||||
|
<value>使用分号(;)分隔</value>
|
||||||
|
</data>
|
||||||
|
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>239, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label12.Text" xml:space="preserve">
|
||||||
|
<value>对于下列字符开头的地址不使用代理服务器:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 479</value>
|
<value>0, 479</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>662, 539</value>
|
<value>662, 539</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -31,6 +31,9 @@
|
|||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RoutingRuleSettingDetailsForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RoutingRuleSettingDetailsForm));
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.panel3 = new System.Windows.Forms.Panel();
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.chkEnabled = new System.Windows.Forms.CheckBox();
|
||||||
|
this.clbInboundTag = new System.Windows.Forms.CheckedListBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.clbProtocol = new System.Windows.Forms.CheckedListBox();
|
this.clbProtocol = new System.Windows.Forms.CheckedListBox();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
this.txtPort = new System.Windows.Forms.TextBox();
|
this.txtPort = new System.Windows.Forms.TextBox();
|
||||||
@@ -61,6 +64,9 @@
|
|||||||
// panel3
|
// panel3
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.panel3, "panel3");
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Controls.Add(this.chkEnabled);
|
||||||
|
this.panel3.Controls.Add(this.clbInboundTag);
|
||||||
|
this.panel3.Controls.Add(this.label2);
|
||||||
this.panel3.Controls.Add(this.clbProtocol);
|
this.panel3.Controls.Add(this.clbProtocol);
|
||||||
this.panel3.Controls.Add(this.label3);
|
this.panel3.Controls.Add(this.label3);
|
||||||
this.panel3.Controls.Add(this.txtPort);
|
this.panel3.Controls.Add(this.txtPort);
|
||||||
@@ -70,6 +76,28 @@
|
|||||||
this.panel3.Controls.Add(this.cmbOutboundTag);
|
this.panel3.Controls.Add(this.cmbOutboundTag);
|
||||||
this.panel3.Name = "panel3";
|
this.panel3.Name = "panel3";
|
||||||
//
|
//
|
||||||
|
// chkEnabled
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkEnabled, "chkEnabled");
|
||||||
|
this.chkEnabled.Name = "chkEnabled";
|
||||||
|
this.chkEnabled.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// clbInboundTag
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.clbInboundTag, "clbInboundTag");
|
||||||
|
this.clbInboundTag.CheckOnClick = true;
|
||||||
|
this.clbInboundTag.FormattingEnabled = true;
|
||||||
|
this.clbInboundTag.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("clbInboundTag.Items"),
|
||||||
|
resources.GetString("clbInboundTag.Items1")});
|
||||||
|
this.clbInboundTag.MultiColumn = true;
|
||||||
|
this.clbInboundTag.Name = "clbInboundTag";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label2, "label2");
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
//
|
||||||
// clbProtocol
|
// clbProtocol
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.clbProtocol, "clbProtocol");
|
resources.ApplyResources(this.clbProtocol, "clbProtocol");
|
||||||
@@ -214,5 +242,8 @@
|
|||||||
private System.Windows.Forms.TextBox txtPort;
|
private System.Windows.Forms.TextBox txtPort;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.CheckedListBox clbProtocol;
|
private System.Windows.Forms.CheckedListBox clbProtocol;
|
||||||
|
private System.Windows.Forms.CheckedListBox clbInboundTag;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.CheckBox chkEnabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,6 +36,16 @@ namespace v2rayN.Forms
|
|||||||
if (rulesItem != null)
|
if (rulesItem != null)
|
||||||
{
|
{
|
||||||
rulesItem.port = txtPort.Text.TrimEx();
|
rulesItem.port = txtPort.Text.TrimEx();
|
||||||
|
|
||||||
|
var inboundTag = new List<String>();
|
||||||
|
for (int i = 0; i < clbInboundTag.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (clbInboundTag.GetItemChecked(i))
|
||||||
|
{
|
||||||
|
inboundTag.Add(clbInboundTag.Items[i].ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rulesItem.inboundTag = inboundTag;
|
||||||
rulesItem.outboundTag = cmbOutboundTag.Text;
|
rulesItem.outboundTag = cmbOutboundTag.Text;
|
||||||
rulesItem.domain = Utils.String2List(txtDomain.Text);
|
rulesItem.domain = Utils.String2List(txtDomain.Text);
|
||||||
rulesItem.ip = Utils.String2List(txtIP.Text);
|
rulesItem.ip = Utils.String2List(txtIP.Text);
|
||||||
@@ -49,6 +59,7 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
rulesItem.protocol = protocol;
|
rulesItem.protocol = protocol;
|
||||||
|
rulesItem.enabled = chkEnabled.Checked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void BindingData()
|
private void BindingData()
|
||||||
@@ -60,6 +71,17 @@ namespace v2rayN.Forms
|
|||||||
txtDomain.Text = Utils.List2String(rulesItem.domain, true);
|
txtDomain.Text = Utils.List2String(rulesItem.domain, true);
|
||||||
txtIP.Text = Utils.List2String(rulesItem.ip, true);
|
txtIP.Text = Utils.List2String(rulesItem.ip, true);
|
||||||
|
|
||||||
|
if (rulesItem.inboundTag != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < clbInboundTag.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (rulesItem.inboundTag.Contains(clbInboundTag.Items[i].ToString()))
|
||||||
|
{
|
||||||
|
clbInboundTag.SetItemChecked(i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (rulesItem.protocol != null)
|
if (rulesItem.protocol != null)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < clbProtocol.Items.Count; i++)
|
for (int i = 0; i < clbProtocol.Items.Count; i++)
|
||||||
@@ -70,6 +92,7 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
chkEnabled.Checked = rulesItem.enabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void ClearBind()
|
private void ClearBind()
|
||||||
@@ -78,6 +101,7 @@ namespace v2rayN.Forms
|
|||||||
cmbOutboundTag.Text = Global.agentTag;
|
cmbOutboundTag.Text = Global.agentTag;
|
||||||
txtDomain.Text = string.Empty;
|
txtDomain.Text = string.Empty;
|
||||||
txtIP.Text = string.Empty;
|
txtIP.Text = string.Empty;
|
||||||
|
chkEnabled.Checked = true;
|
||||||
}
|
}
|
||||||
private void btnOK_Click(object sender, EventArgs e)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -121,8 +121,8 @@
|
|||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>53, 12</value>
|
<value>53, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox1.Type" xml:space="preserve">
|
<data name=">>clbInboundTag.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
@@ -131,8 +131,8 @@
|
|||||||
<data name="clbProtocol.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="clbProtocol.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>245, 20</value>
|
<value>245, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbOutboundTag.Items1" xml:space="preserve">
|
<data name="clbProtocol.ColumnWidth" type="System.Int32, mscorlib">
|
||||||
<value>direct</value>
|
<value>80</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbOutboundTag.TabIndex" type="System.Int32, mscorlib">
|
<data name="cmbOutboundTag.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>31</value>
|
<value>31</value>
|
||||||
@@ -140,10 +140,10 @@
|
|||||||
<data name="cmbOutboundTag.Items" xml:space="preserve">
|
<data name="cmbOutboundTag.Items" xml:space="preserve">
|
||||||
<value>proxy</value>
|
<value>proxy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbOutboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>107, 16</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>4, 4, 4, 4</value>
|
||||||
|
</data>
|
||||||
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -156,26 +156,32 @@
|
|||||||
<data name=">>clbProtocol.Name" xml:space="preserve">
|
<data name=">>clbProtocol.Name" xml:space="preserve">
|
||||||
<value>clbProtocol</value>
|
<value>clbProtocol</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Protocol</value>
|
||||||
|
</data>
|
||||||
<data name=">>label1.Type" xml:space="preserve">
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>labRoutingTips.ZOrder" xml:space="preserve">
|
<data name=">>labRoutingTips.ZOrder" xml:space="preserve">
|
||||||
<value>4</value>
|
<value>7</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtDomain.Location" type="System.Drawing.Point, System.Drawing">
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
<value>3, 17</value>
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>clbProtocol.ZOrder" xml:space="preserve">
|
<data name=">>clbProtocol.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Left</value>
|
<value>Left</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label3.Parent" xml:space="preserve">
|
<data name="clbInboundTag.ColumnWidth" type="System.Int32, mscorlib">
|
||||||
<value>panel3</value>
|
<value>80</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
@@ -186,8 +192,11 @@
|
|||||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>29, 12</value>
|
<value>29, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name=">>clbInboundTag.ZOrder" xml:space="preserve">
|
||||||
<value>742, 576</value>
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Items1" xml:space="preserve">
|
||||||
|
<value>http</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox2.Parent" xml:space="preserve">
|
<data name=">>groupBox2.Parent" xml:space="preserve">
|
||||||
<value>panel2</value>
|
<value>panel2</value>
|
||||||
@@ -201,11 +210,11 @@
|
|||||||
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtIP.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name=">>clbProtocol.Type" xml:space="preserve">
|
||||||
<value>Fill</value>
|
<value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
<value>3</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
@@ -222,6 +231,9 @@
|
|||||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>36</value>
|
<value>36</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="panel4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -243,8 +255,11 @@
|
|||||||
<data name="labRoutingTips.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="labRoutingTips.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
<value>0, 121</value>
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label1.Name" xml:space="preserve">
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
<value>label1</value>
|
<value>label1</value>
|
||||||
@@ -252,11 +267,17 @@
|
|||||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>742, 395</value>
|
<value>742, 395</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Text" xml:space="preserve">
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>Protocol</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmbOutboundTag.ZOrder" xml:space="preserve">
|
<data name=">>cmbOutboundTag.ZOrder" xml:space="preserve">
|
||||||
<value>6</value>
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>chkEnabled.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>panel3.Name" xml:space="preserve">
|
<data name=">>panel3.Name" xml:space="preserve">
|
||||||
<value>panel3</value>
|
<value>panel3</value>
|
||||||
@@ -276,18 +297,30 @@
|
|||||||
<data name="clbProtocol.Items2" xml:space="preserve">
|
<data name="clbProtocol.Items2" xml:space="preserve">
|
||||||
<value>bittorrent</value>
|
<value>bittorrent</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Items" xml:space="preserve">
|
||||||
|
<value>socks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>chkEnabled.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
<data name="labRoutingTips.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="labRoutingTips.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>19, 82</value>
|
<value>19, 82</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtIP.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtIP.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>25</value>
|
<value>25</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="clbInboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>347, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 17</value>
|
||||||
|
</data>
|
||||||
<data name=">>labRoutingTips.Parent" xml:space="preserve">
|
<data name=">>labRoutingTips.Parent" xml:space="preserve">
|
||||||
<value>panel3</value>
|
<value>panel3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>19, 20</value>
|
<value>19, 20</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -300,8 +333,8 @@
|
|||||||
<data name="clbProtocol.TabIndex" type="System.Int32, mscorlib">
|
<data name="clbProtocol.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>39</value>
|
<value>39</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtDomain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
<value>Fill</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
@@ -325,10 +358,10 @@
|
|||||||
<value>groupBox2</value>
|
<value>groupBox2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label4.ZOrder" xml:space="preserve">
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
<value>5</value>
|
<value>8</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
<value>Bottom</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtDomain.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>386, 375</value>
|
<value>386, 375</value>
|
||||||
@@ -336,24 +369,18 @@
|
|||||||
<data name=">>cmbOutboundTag.Parent" xml:space="preserve">
|
<data name=">>cmbOutboundTag.Parent" xml:space="preserve">
|
||||||
<value>panel3</value>
|
<value>panel3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>392, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>8</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbOutboundTag.Type" xml:space="preserve">
|
<data name=">>cmbOutboundTag.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox1.Parent" xml:space="preserve">
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
<value>panel2</value>
|
<value>panel2</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="txtIP.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
<data name=">>panel4.Name" xml:space="preserve">
|
<data name=">>panel4.Name" xml:space="preserve">
|
||||||
<value>panel4</value>
|
<value>panel4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>clbProtocol.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -363,9 +390,18 @@
|
|||||||
<data name=">>panel1.Parent" xml:space="preserve">
|
<data name=">>panel1.Parent" xml:space="preserve">
|
||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkEnabled.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>42</value>
|
||||||
|
</data>
|
||||||
<data name=">>txtIP.Parent" xml:space="preserve">
|
<data name=">>txtIP.Parent" xml:space="preserve">
|
||||||
<value>groupBox2</value>
|
<value>groupBox2</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
<data name=">>panel4.Type" xml:space="preserve">
|
<data name=">>panel4.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -390,14 +426,14 @@
|
|||||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox1.Name" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtDomain.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtDomain.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>24</value>
|
<value>24</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
<data name="label1.Text" xml:space="preserve">
|
||||||
<value>11</value>
|
<value>Port</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.Text" xml:space="preserve">
|
||||||
|
<value>Enable</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label4.Name" xml:space="preserve">
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
<value>label4</value>
|
<value>label4</value>
|
||||||
@@ -408,9 +444,6 @@
|
|||||||
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>75, 23</value>
|
<value>75, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>btnClose.Name" xml:space="preserve">
|
|
||||||
<value>btnClose</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>labRoutingTips.Type" xml:space="preserve">
|
<data name=">>labRoutingTips.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -423,21 +456,24 @@
|
|||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>274, 47</value>
|
<value>274, 47</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>40</value>
|
||||||
|
</data>
|
||||||
<data name="cmbOutboundTag.Items2" xml:space="preserve">
|
<data name="cmbOutboundTag.Items2" xml:space="preserve">
|
||||||
<value>block</value>
|
<value>block</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="labRoutingTips.TabIndex" type="System.Int32, mscorlib">
|
<data name="labRoutingTips.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>33</value>
|
<value>33</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="clbProtocol.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="clbProtocol.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>347, 43</value>
|
<value>347, 43</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtDomain.ZOrder" xml:space="preserve">
|
<data name=">>txtDomain.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
<data name=">>groupBox2.Type" xml:space="preserve">
|
<data name=">>groupBox2.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -459,8 +495,8 @@
|
|||||||
<data name=">>panel2.ZOrder" xml:space="preserve">
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label3.Name" xml:space="preserve">
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>label3</value>
|
<value>11</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtIP.ZOrder" xml:space="preserve">
|
<data name=">>txtIP.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@@ -468,33 +504,45 @@
|
|||||||
<data name=">>label1.Parent" xml:space="preserve">
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
<value>panel3</value>
|
<value>panel3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>clbProtocol.Parent" xml:space="preserve">
|
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>panel3</value>
|
<value>8</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
<value>0, 10</value>
|
<value>label3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="clbProtocol.ColumnWidth" type="System.Int32, mscorlib">
|
<data name="label2.Text" xml:space="preserve">
|
||||||
<value>80</value>
|
<value>inboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>742, 60</value>
|
<value>742, 60</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>btnOK.Type" xml:space="preserve">
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>0, 121</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>panel4.Parent" xml:space="preserve">
|
<data name=">>panel4.Parent" xml:space="preserve">
|
||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
|
||||||
<value>&Cancel</value>
|
|
||||||
</data>
|
|
||||||
<data name="labRoutingTips.Text" xml:space="preserve">
|
<data name="labRoutingTips.Text" xml:space="preserve">
|
||||||
<value>*Set the rules, separated by commas (,); The comma in the regular is replaced by <COMMA></value>
|
<value>*Set the rules, separated by commas (,); The comma in the regular is replaced by <COMMA></value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="clbInboundTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>245, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>392, 0</value>
|
||||||
|
</data>
|
||||||
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>742, 111</value>
|
<value>742, 111</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -504,8 +552,14 @@
|
|||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
<value>6, 12</value>
|
<value>6, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label1.Text" xml:space="preserve">
|
<data name=">>chkEnabled.ZOrder" xml:space="preserve">
|
||||||
<value>Port</value>
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>617, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.Type" xml:space="preserve">
|
<data name=">>txtPort.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
@@ -513,26 +567,41 @@
|
|||||||
<data name=">>txtDomain.Type" xml:space="preserve">
|
<data name=">>txtDomain.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkEnabled.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
<data name=">>label3.Type" xml:space="preserve">
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtIP.Name" xml:space="preserve">
|
<data name=">>txtIP.Name" xml:space="preserve">
|
||||||
<value>txtIP</value>
|
<value>txtIP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
<data name="cmbOutboundTag.Items1" xml:space="preserve">
|
||||||
<value>2</value>
|
<value>direct</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
|
<value>label2</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>60, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmbOutboundTag.Name" xml:space="preserve">
|
<data name=">>cmbOutboundTag.Name" xml:space="preserve">
|
||||||
<value>cmbOutboundTag</value>
|
<value>cmbOutboundTag</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>chkEnabled.Name" xml:space="preserve">
|
||||||
|
<value>chkEnabled</value>
|
||||||
|
</data>
|
||||||
<data name="txtDomain.Multiline" type="System.Boolean, mscorlib">
|
<data name="txtDomain.Multiline" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>274, 20</value>
|
||||||
|
</data>
|
||||||
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>Domain</value>
|
<value>742, 576</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel4.TabIndex" type="System.Int32, mscorlib">
|
<data name="panel4.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
@@ -546,8 +615,20 @@
|
|||||||
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>75, 23</value>
|
<value>75, 23</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>clbInboundTag.Name" xml:space="preserve">
|
||||||
|
<value>clbInboundTag</value>
|
||||||
|
</data>
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -558,9 +639,15 @@
|
|||||||
<data name=">>txtDomain.Name" xml:space="preserve">
|
<data name=">>txtDomain.Name" xml:space="preserve">
|
||||||
<value>txtDomain</value>
|
<value>txtDomain</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="clbInboundTag.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>41</value>
|
||||||
|
</data>
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
<value>IP</value>
|
<value>IP</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>clbInboundTag.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
<data name=">>panel3.Type" xml:space="preserve">
|
<data name=">>panel3.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -576,20 +663,26 @@
|
|||||||
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>350, 395</value>
|
<value>350, 395</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label4.Parent" xml:space="preserve">
|
<data name=">>clbProtocol.Parent" xml:space="preserve">
|
||||||
<value>panel3</value>
|
<value>panel3</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Domain</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>504, 15</value>
|
<value>504, 15</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
<data name="cmbOutboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>True</value>
|
<value>107, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Text" xml:space="preserve">
|
<data name="label4.Text" xml:space="preserve">
|
||||||
<value>outboundTag</value>
|
<value>outboundTag</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
<value>Top</value>
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>35</value>
|
<value>35</value>
|
||||||
@@ -597,7 +690,4 @@
|
|||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>zh-Hans</value>
|
|
||||||
</metadata>
|
|
||||||
</root>
|
</root>
|
||||||
@@ -117,12 +117,43 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="chkEnabled.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>670, 18</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>372, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>272, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>279, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>372, 46</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>272, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>279, 50</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>120, 46</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 50</value>
|
||||||
|
</data>
|
||||||
<data name="labRoutingTips.Text" xml:space="preserve">
|
<data name="labRoutingTips.Text" xml:space="preserve">
|
||||||
<value>*设置的路由规则,用逗号(,)分隔;正则中的逗号用<COMMA>替代</value>
|
<value>*设置的路由规则,用逗号(,)分隔;正则中的逗号用<COMMA>替代</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Text" xml:space="preserve">
|
<data name="label4.Text" xml:space="preserve">
|
||||||
<value>OutboundTag</value>
|
<value>OutboundTag</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>120, 16</value>
|
||||||
|
</data>
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -34,6 +34,10 @@
|
|||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
|
this.btnBrowse = new System.Windows.Forms.Button();
|
||||||
|
this.txtCustomIcon = new System.Windows.Forms.TextBox();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.txtUrl = new System.Windows.Forms.TextBox();
|
this.txtUrl = new System.Windows.Forms.TextBox();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
@@ -68,17 +72,17 @@
|
|||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
//
|
//
|
||||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
|
||||||
resources.ApplyResources(this.btnClose, "btnClose");
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.btnClose.Name = "btnClose";
|
this.btnClose.Name = "btnClose";
|
||||||
this.btnClose.UseVisualStyleBackColor = true;
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
//
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
this.panel2.Controls.Add(this.btnClose);
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
this.panel2.Controls.Add(this.btnOK);
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
resources.ApplyResources(this.panel2, "panel2");
|
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
//
|
//
|
||||||
// btnOK
|
// btnOK
|
||||||
@@ -90,14 +94,40 @@
|
|||||||
//
|
//
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
|
this.panel1.Controls.Add(this.label5);
|
||||||
|
this.panel1.Controls.Add(this.btnBrowse);
|
||||||
|
this.panel1.Controls.Add(this.txtCustomIcon);
|
||||||
|
this.panel1.Controls.Add(this.label4);
|
||||||
this.panel1.Controls.Add(this.label1);
|
this.panel1.Controls.Add(this.label1);
|
||||||
this.panel1.Controls.Add(this.txtUrl);
|
this.panel1.Controls.Add(this.txtUrl);
|
||||||
this.panel1.Controls.Add(this.label3);
|
this.panel1.Controls.Add(this.label3);
|
||||||
this.panel1.Controls.Add(this.txtRemarks);
|
this.panel1.Controls.Add(this.txtRemarks);
|
||||||
this.panel1.Controls.Add(this.label2);
|
this.panel1.Controls.Add(this.label2);
|
||||||
resources.ApplyResources(this.panel1, "panel1");
|
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
//
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label5, "label5");
|
||||||
|
this.label5.Name = "label5";
|
||||||
|
//
|
||||||
|
// btnBrowse
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnBrowse, "btnBrowse");
|
||||||
|
this.btnBrowse.Name = "btnBrowse";
|
||||||
|
this.btnBrowse.UseVisualStyleBackColor = true;
|
||||||
|
this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click);
|
||||||
|
//
|
||||||
|
// txtCustomIcon
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtCustomIcon, "txtCustomIcon");
|
||||||
|
this.txtCustomIcon.Name = "txtCustomIcon";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label1, "label1");
|
resources.ApplyResources(this.label1, "label1");
|
||||||
@@ -125,8 +155,8 @@
|
|||||||
//
|
//
|
||||||
// lvRoutings
|
// lvRoutings
|
||||||
//
|
//
|
||||||
this.lvRoutings.ContextMenuStrip = this.cmsLv;
|
|
||||||
resources.ApplyResources(this.lvRoutings, "lvRoutings");
|
resources.ApplyResources(this.lvRoutings, "lvRoutings");
|
||||||
|
this.lvRoutings.ContextMenuStrip = this.cmsLv;
|
||||||
this.lvRoutings.FullRowSelect = true;
|
this.lvRoutings.FullRowSelect = true;
|
||||||
this.lvRoutings.GridLines = true;
|
this.lvRoutings.GridLines = true;
|
||||||
this.lvRoutings.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
this.lvRoutings.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||||
@@ -142,6 +172,7 @@
|
|||||||
//
|
//
|
||||||
// cmsLv
|
// cmsLv
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmsLv, "cmsLv");
|
||||||
this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20);
|
this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuAdd,
|
this.menuAdd,
|
||||||
@@ -155,114 +186,113 @@
|
|||||||
this.menuMoveBottom});
|
this.menuMoveBottom});
|
||||||
this.cmsLv.Name = "cmsLv";
|
this.cmsLv.Name = "cmsLv";
|
||||||
this.cmsLv.OwnerItem = this.MenuItem1;
|
this.cmsLv.OwnerItem = this.MenuItem1;
|
||||||
resources.ApplyResources(this.cmsLv, "cmsLv");
|
|
||||||
//
|
//
|
||||||
// menuAdd
|
// menuAdd
|
||||||
//
|
//
|
||||||
this.menuAdd.Name = "menuAdd";
|
|
||||||
resources.ApplyResources(this.menuAdd, "menuAdd");
|
resources.ApplyResources(this.menuAdd, "menuAdd");
|
||||||
|
this.menuAdd.Name = "menuAdd";
|
||||||
this.menuAdd.Click += new System.EventHandler(this.menuAdd_Click);
|
this.menuAdd.Click += new System.EventHandler(this.menuAdd_Click);
|
||||||
//
|
//
|
||||||
// menuRemove
|
// menuRemove
|
||||||
//
|
//
|
||||||
this.menuRemove.Name = "menuRemove";
|
|
||||||
resources.ApplyResources(this.menuRemove, "menuRemove");
|
resources.ApplyResources(this.menuRemove, "menuRemove");
|
||||||
|
this.menuRemove.Name = "menuRemove";
|
||||||
this.menuRemove.Click += new System.EventHandler(this.menuRemove_Click);
|
this.menuRemove.Click += new System.EventHandler(this.menuRemove_Click);
|
||||||
//
|
//
|
||||||
// menuSelectAll
|
// menuSelectAll
|
||||||
//
|
//
|
||||||
this.menuSelectAll.Name = "menuSelectAll";
|
|
||||||
resources.ApplyResources(this.menuSelectAll, "menuSelectAll");
|
resources.ApplyResources(this.menuSelectAll, "menuSelectAll");
|
||||||
|
this.menuSelectAll.Name = "menuSelectAll";
|
||||||
this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click);
|
this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click);
|
||||||
//
|
//
|
||||||
// menuExportSelectedRules
|
// menuExportSelectedRules
|
||||||
//
|
//
|
||||||
this.menuExportSelectedRules.Name = "menuExportSelectedRules";
|
|
||||||
resources.ApplyResources(this.menuExportSelectedRules, "menuExportSelectedRules");
|
resources.ApplyResources(this.menuExportSelectedRules, "menuExportSelectedRules");
|
||||||
|
this.menuExportSelectedRules.Name = "menuExportSelectedRules";
|
||||||
this.menuExportSelectedRules.Click += new System.EventHandler(this.menuExportSelectedRules_Click);
|
this.menuExportSelectedRules.Click += new System.EventHandler(this.menuExportSelectedRules_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
||||||
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
//
|
//
|
||||||
// menuMoveTop
|
// menuMoveTop
|
||||||
//
|
//
|
||||||
this.menuMoveTop.Name = "menuMoveTop";
|
|
||||||
resources.ApplyResources(this.menuMoveTop, "menuMoveTop");
|
resources.ApplyResources(this.menuMoveTop, "menuMoveTop");
|
||||||
|
this.menuMoveTop.Name = "menuMoveTop";
|
||||||
this.menuMoveTop.Click += new System.EventHandler(this.menuMoveTop_Click);
|
this.menuMoveTop.Click += new System.EventHandler(this.menuMoveTop_Click);
|
||||||
//
|
//
|
||||||
// menuMoveUp
|
// menuMoveUp
|
||||||
//
|
//
|
||||||
this.menuMoveUp.Name = "menuMoveUp";
|
|
||||||
resources.ApplyResources(this.menuMoveUp, "menuMoveUp");
|
resources.ApplyResources(this.menuMoveUp, "menuMoveUp");
|
||||||
|
this.menuMoveUp.Name = "menuMoveUp";
|
||||||
this.menuMoveUp.Click += new System.EventHandler(this.menuMoveUp_Click);
|
this.menuMoveUp.Click += new System.EventHandler(this.menuMoveUp_Click);
|
||||||
//
|
//
|
||||||
// menuMoveDown
|
// menuMoveDown
|
||||||
//
|
//
|
||||||
this.menuMoveDown.Name = "menuMoveDown";
|
|
||||||
resources.ApplyResources(this.menuMoveDown, "menuMoveDown");
|
resources.ApplyResources(this.menuMoveDown, "menuMoveDown");
|
||||||
|
this.menuMoveDown.Name = "menuMoveDown";
|
||||||
this.menuMoveDown.Click += new System.EventHandler(this.menuMoveDown_Click);
|
this.menuMoveDown.Click += new System.EventHandler(this.menuMoveDown_Click);
|
||||||
//
|
//
|
||||||
// menuMoveBottom
|
// menuMoveBottom
|
||||||
//
|
//
|
||||||
this.menuMoveBottom.Name = "menuMoveBottom";
|
|
||||||
resources.ApplyResources(this.menuMoveBottom, "menuMoveBottom");
|
resources.ApplyResources(this.menuMoveBottom, "menuMoveBottom");
|
||||||
|
this.menuMoveBottom.Name = "menuMoveBottom";
|
||||||
this.menuMoveBottom.Click += new System.EventHandler(this.menuMoveBottom_Click);
|
this.menuMoveBottom.Click += new System.EventHandler(this.menuMoveBottom_Click);
|
||||||
//
|
//
|
||||||
// MenuItem1
|
// MenuItem1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
||||||
this.MenuItem1.DropDown = this.cmsLv;
|
this.MenuItem1.DropDown = this.cmsLv;
|
||||||
this.MenuItem1.Name = "MenuItem1";
|
this.MenuItem1.Name = "MenuItem1";
|
||||||
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
|
||||||
//
|
//
|
||||||
// tabControl2
|
// tabControl2
|
||||||
//
|
//
|
||||||
this.tabControl2.Controls.Add(this.tabPage2);
|
|
||||||
resources.ApplyResources(this.tabControl2, "tabControl2");
|
resources.ApplyResources(this.tabControl2, "tabControl2");
|
||||||
|
this.tabControl2.Controls.Add(this.tabPage2);
|
||||||
this.tabControl2.Name = "tabControl2";
|
this.tabControl2.Name = "tabControl2";
|
||||||
this.tabControl2.SelectedIndex = 0;
|
this.tabControl2.SelectedIndex = 0;
|
||||||
//
|
//
|
||||||
// tabPage2
|
// tabPage2
|
||||||
//
|
//
|
||||||
this.tabPage2.Controls.Add(this.lvRoutings);
|
|
||||||
resources.ApplyResources(this.tabPage2, "tabPage2");
|
resources.ApplyResources(this.tabPage2, "tabPage2");
|
||||||
|
this.tabPage2.Controls.Add(this.lvRoutings);
|
||||||
this.tabPage2.Name = "tabPage2";
|
this.tabPage2.Name = "tabPage2";
|
||||||
this.tabPage2.UseVisualStyleBackColor = true;
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// menuServer
|
// menuServer
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.menuServer, "menuServer");
|
||||||
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.MenuItem1,
|
this.MenuItem1,
|
||||||
this.toolStripMenuItem1});
|
this.toolStripMenuItem1});
|
||||||
resources.ApplyResources(this.menuServer, "menuServer");
|
|
||||||
this.menuServer.Name = "menuServer";
|
this.menuServer.Name = "menuServer";
|
||||||
//
|
//
|
||||||
// toolStripMenuItem1
|
// toolStripMenuItem1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
|
||||||
this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuImportRulesFromFile,
|
this.menuImportRulesFromFile,
|
||||||
this.menuImportRulesFromClipboard,
|
this.menuImportRulesFromClipboard,
|
||||||
this.menuImportRulesFromUrl});
|
this.menuImportRulesFromUrl});
|
||||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||||
resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
|
|
||||||
//
|
//
|
||||||
// menuImportRulesFromFile
|
// menuImportRulesFromFile
|
||||||
//
|
//
|
||||||
this.menuImportRulesFromFile.Name = "menuImportRulesFromFile";
|
|
||||||
resources.ApplyResources(this.menuImportRulesFromFile, "menuImportRulesFromFile");
|
resources.ApplyResources(this.menuImportRulesFromFile, "menuImportRulesFromFile");
|
||||||
|
this.menuImportRulesFromFile.Name = "menuImportRulesFromFile";
|
||||||
this.menuImportRulesFromFile.Click += new System.EventHandler(this.menuImportRulesFromFile_Click);
|
this.menuImportRulesFromFile.Click += new System.EventHandler(this.menuImportRulesFromFile_Click);
|
||||||
//
|
//
|
||||||
// menuImportRulesFromClipboard
|
// menuImportRulesFromClipboard
|
||||||
//
|
//
|
||||||
this.menuImportRulesFromClipboard.Name = "menuImportRulesFromClipboard";
|
|
||||||
resources.ApplyResources(this.menuImportRulesFromClipboard, "menuImportRulesFromClipboard");
|
resources.ApplyResources(this.menuImportRulesFromClipboard, "menuImportRulesFromClipboard");
|
||||||
|
this.menuImportRulesFromClipboard.Name = "menuImportRulesFromClipboard";
|
||||||
this.menuImportRulesFromClipboard.Click += new System.EventHandler(this.menuImportRulesFromClipboard_Click);
|
this.menuImportRulesFromClipboard.Click += new System.EventHandler(this.menuImportRulesFromClipboard_Click);
|
||||||
//
|
//
|
||||||
// menuImportRulesFromUrl
|
// menuImportRulesFromUrl
|
||||||
//
|
//
|
||||||
this.menuImportRulesFromUrl.Name = "menuImportRulesFromUrl";
|
|
||||||
resources.ApplyResources(this.menuImportRulesFromUrl, "menuImportRulesFromUrl");
|
resources.ApplyResources(this.menuImportRulesFromUrl, "menuImportRulesFromUrl");
|
||||||
|
this.menuImportRulesFromUrl.Name = "menuImportRulesFromUrl";
|
||||||
this.menuImportRulesFromUrl.Click += new System.EventHandler(this.menuImportRulesFromUrl_Click);
|
this.menuImportRulesFromUrl.Click += new System.EventHandler(this.menuImportRulesFromUrl_Click);
|
||||||
//
|
//
|
||||||
// RoutingRuleSettingForm
|
// RoutingRuleSettingForm
|
||||||
@@ -319,5 +349,9 @@
|
|||||||
private System.Windows.Forms.TextBox txtUrl;
|
private System.Windows.Forms.TextBox txtUrl;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.TextBox txtCustomIcon;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.Button btnBrowse;
|
||||||
|
private System.Windows.Forms.Label label5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -38,6 +38,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
txtRemarks.Text = routingItem.remarks ?? string.Empty;
|
txtRemarks.Text = routingItem.remarks ?? string.Empty;
|
||||||
txtUrl.Text = routingItem.url ?? string.Empty;
|
txtUrl.Text = routingItem.url ?? string.Empty;
|
||||||
|
txtCustomIcon.Text = routingItem.customIcon ?? string.Empty;
|
||||||
|
|
||||||
InitRoutingsView();
|
InitRoutingsView();
|
||||||
RefreshRoutingsView();
|
RefreshRoutingsView();
|
||||||
@@ -57,9 +58,11 @@ namespace v2rayN.Forms
|
|||||||
lvRoutings.Columns.Add("", 30);
|
lvRoutings.Columns.Add("", 30);
|
||||||
lvRoutings.Columns.Add("outboundTag", 80);
|
lvRoutings.Columns.Add("outboundTag", 80);
|
||||||
lvRoutings.Columns.Add("port", 80);
|
lvRoutings.Columns.Add("port", 80);
|
||||||
lvRoutings.Columns.Add("protocol", 100);
|
lvRoutings.Columns.Add("protocol", 80);
|
||||||
|
lvRoutings.Columns.Add("inboundTag", 80);
|
||||||
lvRoutings.Columns.Add("domain", 160);
|
lvRoutings.Columns.Add("domain", 160);
|
||||||
lvRoutings.Columns.Add("ip", 160);
|
lvRoutings.Columns.Add("ip", 160);
|
||||||
|
lvRoutings.Columns.Add("enable", 60);
|
||||||
|
|
||||||
lvRoutings.EndUpdate();
|
lvRoutings.EndUpdate();
|
||||||
}
|
}
|
||||||
@@ -77,8 +80,10 @@ namespace v2rayN.Forms
|
|||||||
Utils.AddSubItem(lvItem, "outboundTag", item.outboundTag);
|
Utils.AddSubItem(lvItem, "outboundTag", item.outboundTag);
|
||||||
Utils.AddSubItem(lvItem, "port", item.port);
|
Utils.AddSubItem(lvItem, "port", item.port);
|
||||||
Utils.AddSubItem(lvItem, "protocol", Utils.List2String(item.protocol));
|
Utils.AddSubItem(lvItem, "protocol", Utils.List2String(item.protocol));
|
||||||
|
Utils.AddSubItem(lvItem, "inboundTag", Utils.List2String(item.inboundTag));
|
||||||
Utils.AddSubItem(lvItem, "domain", Utils.List2String(item.domain));
|
Utils.AddSubItem(lvItem, "domain", Utils.List2String(item.domain));
|
||||||
Utils.AddSubItem(lvItem, "ip", Utils.List2String(item.ip));
|
Utils.AddSubItem(lvItem, "ip", Utils.List2String(item.ip));
|
||||||
|
Utils.AddSubItem(lvItem, "enable", item.enabled.ToString());
|
||||||
|
|
||||||
if (lvItem != null) lvRoutings.Items.Add(lvItem);
|
if (lvItem != null) lvRoutings.Items.Add(lvItem);
|
||||||
}
|
}
|
||||||
@@ -89,6 +94,7 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
routingItem.remarks = txtRemarks.Text.Trim();
|
routingItem.remarks = txtRemarks.Text.Trim();
|
||||||
routingItem.url = txtUrl.Text.Trim();
|
routingItem.url = txtUrl.Text.Trim();
|
||||||
|
routingItem.customIcon = txtCustomIcon.Text.Trim();
|
||||||
|
|
||||||
if (ConfigHandler.AddRoutingItem(ref config, routingItem, EditIndex) == 0)
|
if (ConfigHandler.AddRoutingItem(ref config, routingItem, EditIndex) == 0)
|
||||||
{
|
{
|
||||||
@@ -104,6 +110,14 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
}
|
}
|
||||||
|
private void btnBrowse_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OpenFileDialog openFileDialog1 = new OpenFileDialog();
|
||||||
|
openFileDialog1.Filter = "PNG|*.png";
|
||||||
|
openFileDialog1.ShowDialog();
|
||||||
|
txtCustomIcon.Text = openFileDialog1.FileName;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void lvRoutings_DoubleClick(object sender, EventArgs e)
|
private void lvRoutings_DoubleClick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -336,8 +350,9 @@ namespace v2rayN.Forms
|
|||||||
return ConfigHandler.AddBatchRoutingRules(ref routingItem, clipboardData, blReplace);
|
return ConfigHandler.AddBatchRoutingRules(ref routingItem, clipboardData, blReplace);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -120,16 +120,34 @@
|
|||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
|
||||||
<value>确定(&O)</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 613</value>
|
<value>0, 501</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>785, 60</value>
|
<value>785, 60</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>785, 147</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>670, 104</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.Text" xml:space="preserve">
|
||||||
|
<value>浏览(&B)</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtCustomIcon.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>101, 105</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>自定义图标</value>
|
||||||
|
</data>
|
||||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>29, 12</value>
|
<value>29, 12</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -154,9 +172,6 @@
|
|||||||
<data name="label2.Text" xml:space="preserve">
|
<data name="label2.Text" xml:space="preserve">
|
||||||
<value>别名</value>
|
<value>别名</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>785, 109</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuAdd.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuAdd.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>196, 22</value>
|
<value>196, 22</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -235,19 +250,28 @@
|
|||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lvRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="lvRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>771, 447</value>
|
<value>771, 297</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 172</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>785, 329</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>777, 453</value>
|
<value>777, 303</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage2.Text" xml:space="preserve">
|
<data name="tabPage2.Text" xml:space="preserve">
|
||||||
<value>规则列表</value>
|
<value>规则列表</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabControl2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>0, 134</value>
|
<value>785, 25</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabControl2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>785, 479</value>
|
<value>68, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
||||||
|
<value>导入规则</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuImportRulesFromFile.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuImportRulesFromFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>189, 22</value>
|
<value>189, 22</value>
|
||||||
@@ -267,17 +291,8 @@
|
|||||||
<data name="menuImportRulesFromUrl.Text" xml:space="preserve">
|
<data name="menuImportRulesFromUrl.Text" xml:space="preserve">
|
||||||
<value>从订阅Url中导入规则</value>
|
<value>从订阅Url中导入规则</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>68, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
|
||||||
<value>导入规则</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>785, 25</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>785, 673</value>
|
<value>785, 561</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>规则集设置</value>
|
<value>规则集设置</value>
|
||||||
|
|||||||
79
v2rayN/v2rayN/Forms/RoutingSettingForm.Designer.cs
generated
79
v2rayN/v2rayN/Forms/RoutingSettingForm.Designer.cs
generated
@@ -35,6 +35,8 @@
|
|||||||
this.labRoutingTips = new System.Windows.Forms.Label();
|
this.labRoutingTips = new System.Windows.Forms.Label();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.cmbdomainMatcher = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label6 = new System.Windows.Forms.Label();
|
||||||
this.chkenableRoutingAdvanced = new System.Windows.Forms.CheckBox();
|
this.chkenableRoutingAdvanced = new System.Windows.Forms.CheckBox();
|
||||||
this.linkLabelRoutingDoc = new System.Windows.Forms.LinkLabel();
|
this.linkLabelRoutingDoc = new System.Windows.Forms.LinkLabel();
|
||||||
this.cmbdomainStrategy = new System.Windows.Forms.ComboBox();
|
this.cmbdomainStrategy = new System.Windows.Forms.ComboBox();
|
||||||
@@ -90,24 +92,24 @@
|
|||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
//
|
//
|
||||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
|
||||||
resources.ApplyResources(this.btnClose, "btnClose");
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.btnClose.Name = "btnClose";
|
this.btnClose.Name = "btnClose";
|
||||||
this.btnClose.UseVisualStyleBackColor = true;
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
//
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
this.panel2.Controls.Add(this.labRoutingTips);
|
this.panel2.Controls.Add(this.labRoutingTips);
|
||||||
this.panel2.Controls.Add(this.btnClose);
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
this.panel2.Controls.Add(this.btnOK);
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
resources.ApplyResources(this.panel2, "panel2");
|
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
//
|
//
|
||||||
// labRoutingTips
|
// labRoutingTips
|
||||||
//
|
//
|
||||||
this.labRoutingTips.ForeColor = System.Drawing.Color.Brown;
|
|
||||||
resources.ApplyResources(this.labRoutingTips, "labRoutingTips");
|
resources.ApplyResources(this.labRoutingTips, "labRoutingTips");
|
||||||
|
this.labRoutingTips.ForeColor = System.Drawing.Color.Brown;
|
||||||
this.labRoutingTips.Name = "labRoutingTips";
|
this.labRoutingTips.Name = "labRoutingTips";
|
||||||
//
|
//
|
||||||
// btnOK
|
// btnOK
|
||||||
@@ -119,12 +121,29 @@
|
|||||||
//
|
//
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
|
this.panel1.Controls.Add(this.cmbdomainMatcher);
|
||||||
|
this.panel1.Controls.Add(this.label6);
|
||||||
this.panel1.Controls.Add(this.chkenableRoutingAdvanced);
|
this.panel1.Controls.Add(this.chkenableRoutingAdvanced);
|
||||||
this.panel1.Controls.Add(this.linkLabelRoutingDoc);
|
this.panel1.Controls.Add(this.linkLabelRoutingDoc);
|
||||||
this.panel1.Controls.Add(this.cmbdomainStrategy);
|
this.panel1.Controls.Add(this.cmbdomainStrategy);
|
||||||
resources.ApplyResources(this.panel1, "panel1");
|
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
//
|
//
|
||||||
|
// cmbdomainMatcher
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmbdomainMatcher, "cmbdomainMatcher");
|
||||||
|
this.cmbdomainMatcher.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbdomainMatcher.FormattingEnabled = true;
|
||||||
|
this.cmbdomainMatcher.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbdomainMatcher.Items"),
|
||||||
|
resources.GetString("cmbdomainMatcher.Items1")});
|
||||||
|
this.cmbdomainMatcher.Name = "cmbdomainMatcher";
|
||||||
|
//
|
||||||
|
// label6
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label6, "label6");
|
||||||
|
this.label6.Name = "label6";
|
||||||
|
//
|
||||||
// chkenableRoutingAdvanced
|
// chkenableRoutingAdvanced
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.chkenableRoutingAdvanced, "chkenableRoutingAdvanced");
|
resources.ApplyResources(this.chkenableRoutingAdvanced, "chkenableRoutingAdvanced");
|
||||||
@@ -141,17 +160,18 @@
|
|||||||
//
|
//
|
||||||
// cmbdomainStrategy
|
// cmbdomainStrategy
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbdomainStrategy, "cmbdomainStrategy");
|
||||||
this.cmbdomainStrategy.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbdomainStrategy.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbdomainStrategy.FormattingEnabled = true;
|
this.cmbdomainStrategy.FormattingEnabled = true;
|
||||||
this.cmbdomainStrategy.Items.AddRange(new object[] {
|
this.cmbdomainStrategy.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbdomainStrategy.Items"),
|
resources.GetString("cmbdomainStrategy.Items"),
|
||||||
resources.GetString("cmbdomainStrategy.Items1"),
|
resources.GetString("cmbdomainStrategy.Items1"),
|
||||||
resources.GetString("cmbdomainStrategy.Items2")});
|
resources.GetString("cmbdomainStrategy.Items2")});
|
||||||
resources.ApplyResources(this.cmbdomainStrategy, "cmbdomainStrategy");
|
|
||||||
this.cmbdomainStrategy.Name = "cmbdomainStrategy";
|
this.cmbdomainStrategy.Name = "cmbdomainStrategy";
|
||||||
//
|
//
|
||||||
// cmsLv
|
// cmsLv
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmsLv, "cmsLv");
|
||||||
this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20);
|
this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuAdd,
|
this.menuAdd,
|
||||||
@@ -160,88 +180,87 @@
|
|||||||
this.menuSetDefaultRouting});
|
this.menuSetDefaultRouting});
|
||||||
this.cmsLv.Name = "cmsLv";
|
this.cmsLv.Name = "cmsLv";
|
||||||
this.cmsLv.OwnerItem = this.MenuItemAdvanced;
|
this.cmsLv.OwnerItem = this.MenuItemAdvanced;
|
||||||
resources.ApplyResources(this.cmsLv, "cmsLv");
|
|
||||||
//
|
//
|
||||||
// menuAdd
|
// menuAdd
|
||||||
//
|
//
|
||||||
this.menuAdd.Name = "menuAdd";
|
|
||||||
resources.ApplyResources(this.menuAdd, "menuAdd");
|
resources.ApplyResources(this.menuAdd, "menuAdd");
|
||||||
|
this.menuAdd.Name = "menuAdd";
|
||||||
this.menuAdd.Click += new System.EventHandler(this.menuAdd_Click);
|
this.menuAdd.Click += new System.EventHandler(this.menuAdd_Click);
|
||||||
//
|
//
|
||||||
// menuRemove
|
// menuRemove
|
||||||
//
|
//
|
||||||
this.menuRemove.Name = "menuRemove";
|
|
||||||
resources.ApplyResources(this.menuRemove, "menuRemove");
|
resources.ApplyResources(this.menuRemove, "menuRemove");
|
||||||
|
this.menuRemove.Name = "menuRemove";
|
||||||
this.menuRemove.Click += new System.EventHandler(this.menuRemove_Click);
|
this.menuRemove.Click += new System.EventHandler(this.menuRemove_Click);
|
||||||
//
|
//
|
||||||
// menuSelectAll
|
// menuSelectAll
|
||||||
//
|
//
|
||||||
this.menuSelectAll.Name = "menuSelectAll";
|
|
||||||
resources.ApplyResources(this.menuSelectAll, "menuSelectAll");
|
resources.ApplyResources(this.menuSelectAll, "menuSelectAll");
|
||||||
|
this.menuSelectAll.Name = "menuSelectAll";
|
||||||
this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click);
|
this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click);
|
||||||
//
|
//
|
||||||
// menuSetDefaultRouting
|
// menuSetDefaultRouting
|
||||||
//
|
//
|
||||||
this.menuSetDefaultRouting.Name = "menuSetDefaultRouting";
|
|
||||||
resources.ApplyResources(this.menuSetDefaultRouting, "menuSetDefaultRouting");
|
resources.ApplyResources(this.menuSetDefaultRouting, "menuSetDefaultRouting");
|
||||||
|
this.menuSetDefaultRouting.Name = "menuSetDefaultRouting";
|
||||||
this.menuSetDefaultRouting.Click += new System.EventHandler(this.menuSetDefaultRouting_Click);
|
this.menuSetDefaultRouting.Click += new System.EventHandler(this.menuSetDefaultRouting_Click);
|
||||||
//
|
//
|
||||||
// MenuItemAdvanced
|
// MenuItemAdvanced
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.MenuItemAdvanced, "MenuItemAdvanced");
|
||||||
this.MenuItemAdvanced.DropDown = this.cmsLv;
|
this.MenuItemAdvanced.DropDown = this.cmsLv;
|
||||||
this.MenuItemAdvanced.Name = "MenuItemAdvanced";
|
this.MenuItemAdvanced.Name = "MenuItemAdvanced";
|
||||||
resources.ApplyResources(this.MenuItemAdvanced, "MenuItemAdvanced");
|
|
||||||
//
|
//
|
||||||
// menuServer
|
// menuServer
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.menuServer, "menuServer");
|
||||||
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.MenuItemBasic,
|
this.MenuItemBasic,
|
||||||
this.MenuItemAdvanced});
|
this.MenuItemAdvanced});
|
||||||
resources.ApplyResources(this.menuServer, "menuServer");
|
|
||||||
this.menuServer.Name = "menuServer";
|
this.menuServer.Name = "menuServer";
|
||||||
//
|
//
|
||||||
// MenuItemBasic
|
// MenuItemBasic
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.MenuItemBasic, "MenuItemBasic");
|
||||||
this.MenuItemBasic.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.MenuItemBasic.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuImportBasicRules});
|
this.menuImportBasicRules});
|
||||||
this.MenuItemBasic.Name = "MenuItemBasic";
|
this.MenuItemBasic.Name = "MenuItemBasic";
|
||||||
resources.ApplyResources(this.MenuItemBasic, "MenuItemBasic");
|
|
||||||
//
|
//
|
||||||
// menuImportBasicRules
|
// menuImportBasicRules
|
||||||
//
|
//
|
||||||
this.menuImportBasicRules.Name = "menuImportBasicRules";
|
|
||||||
resources.ApplyResources(this.menuImportBasicRules, "menuImportBasicRules");
|
resources.ApplyResources(this.menuImportBasicRules, "menuImportBasicRules");
|
||||||
|
this.menuImportBasicRules.Name = "menuImportBasicRules";
|
||||||
this.menuImportBasicRules.Click += new System.EventHandler(this.menuImportBasicRules_Click);
|
this.menuImportBasicRules.Click += new System.EventHandler(this.menuImportBasicRules_Click);
|
||||||
//
|
//
|
||||||
// tabNormal
|
// tabNormal
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tabNormal, "tabNormal");
|
||||||
this.tabNormal.Controls.Add(this.tabPageProxy);
|
this.tabNormal.Controls.Add(this.tabPageProxy);
|
||||||
this.tabNormal.Controls.Add(this.tabPageDirect);
|
this.tabNormal.Controls.Add(this.tabPageDirect);
|
||||||
this.tabNormal.Controls.Add(this.tabPageBlock);
|
this.tabNormal.Controls.Add(this.tabPageBlock);
|
||||||
this.tabNormal.Controls.Add(this.tabPageRuleList);
|
this.tabNormal.Controls.Add(this.tabPageRuleList);
|
||||||
resources.ApplyResources(this.tabNormal, "tabNormal");
|
|
||||||
this.tabNormal.Name = "tabNormal";
|
this.tabNormal.Name = "tabNormal";
|
||||||
this.tabNormal.SelectedIndex = 0;
|
this.tabNormal.SelectedIndex = 0;
|
||||||
this.tabNormal.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabNormal_Selecting);
|
this.tabNormal.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabNormal_Selecting);
|
||||||
//
|
//
|
||||||
// tabPageProxy
|
// tabPageProxy
|
||||||
//
|
//
|
||||||
this.tabPageProxy.Controls.Add(this.panel5);
|
|
||||||
resources.ApplyResources(this.tabPageProxy, "tabPageProxy");
|
resources.ApplyResources(this.tabPageProxy, "tabPageProxy");
|
||||||
|
this.tabPageProxy.Controls.Add(this.panel5);
|
||||||
this.tabPageProxy.Name = "tabPageProxy";
|
this.tabPageProxy.Name = "tabPageProxy";
|
||||||
this.tabPageProxy.UseVisualStyleBackColor = true;
|
this.tabPageProxy.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// panel5
|
// panel5
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel5, "panel5");
|
||||||
this.panel5.Controls.Add(this.groupBox5);
|
this.panel5.Controls.Add(this.groupBox5);
|
||||||
this.panel5.Controls.Add(this.groupBox6);
|
this.panel5.Controls.Add(this.groupBox6);
|
||||||
resources.ApplyResources(this.panel5, "panel5");
|
|
||||||
this.panel5.Name = "panel5";
|
this.panel5.Name = "panel5";
|
||||||
//
|
//
|
||||||
// groupBox5
|
// groupBox5
|
||||||
//
|
//
|
||||||
this.groupBox5.Controls.Add(this.txtProxyIp);
|
|
||||||
resources.ApplyResources(this.groupBox5, "groupBox5");
|
resources.ApplyResources(this.groupBox5, "groupBox5");
|
||||||
|
this.groupBox5.Controls.Add(this.txtProxyIp);
|
||||||
this.groupBox5.Name = "groupBox5";
|
this.groupBox5.Name = "groupBox5";
|
||||||
this.groupBox5.TabStop = false;
|
this.groupBox5.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -252,8 +271,8 @@
|
|||||||
//
|
//
|
||||||
// groupBox6
|
// groupBox6
|
||||||
//
|
//
|
||||||
this.groupBox6.Controls.Add(this.txtProxyDomain);
|
|
||||||
resources.ApplyResources(this.groupBox6, "groupBox6");
|
resources.ApplyResources(this.groupBox6, "groupBox6");
|
||||||
|
this.groupBox6.Controls.Add(this.txtProxyDomain);
|
||||||
this.groupBox6.Name = "groupBox6";
|
this.groupBox6.Name = "groupBox6";
|
||||||
this.groupBox6.TabStop = false;
|
this.groupBox6.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -264,22 +283,22 @@
|
|||||||
//
|
//
|
||||||
// tabPageDirect
|
// tabPageDirect
|
||||||
//
|
//
|
||||||
this.tabPageDirect.Controls.Add(this.panel4);
|
|
||||||
resources.ApplyResources(this.tabPageDirect, "tabPageDirect");
|
resources.ApplyResources(this.tabPageDirect, "tabPageDirect");
|
||||||
|
this.tabPageDirect.Controls.Add(this.panel4);
|
||||||
this.tabPageDirect.Name = "tabPageDirect";
|
this.tabPageDirect.Name = "tabPageDirect";
|
||||||
this.tabPageDirect.UseVisualStyleBackColor = true;
|
this.tabPageDirect.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// panel4
|
// panel4
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel4, "panel4");
|
||||||
this.panel4.Controls.Add(this.groupBox3);
|
this.panel4.Controls.Add(this.groupBox3);
|
||||||
this.panel4.Controls.Add(this.groupBox4);
|
this.panel4.Controls.Add(this.groupBox4);
|
||||||
resources.ApplyResources(this.panel4, "panel4");
|
|
||||||
this.panel4.Name = "panel4";
|
this.panel4.Name = "panel4";
|
||||||
//
|
//
|
||||||
// groupBox3
|
// groupBox3
|
||||||
//
|
//
|
||||||
this.groupBox3.Controls.Add(this.txtDirectIp);
|
|
||||||
resources.ApplyResources(this.groupBox3, "groupBox3");
|
resources.ApplyResources(this.groupBox3, "groupBox3");
|
||||||
|
this.groupBox3.Controls.Add(this.txtDirectIp);
|
||||||
this.groupBox3.Name = "groupBox3";
|
this.groupBox3.Name = "groupBox3";
|
||||||
this.groupBox3.TabStop = false;
|
this.groupBox3.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -290,8 +309,8 @@
|
|||||||
//
|
//
|
||||||
// groupBox4
|
// groupBox4
|
||||||
//
|
//
|
||||||
this.groupBox4.Controls.Add(this.txtDirectDomain);
|
|
||||||
resources.ApplyResources(this.groupBox4, "groupBox4");
|
resources.ApplyResources(this.groupBox4, "groupBox4");
|
||||||
|
this.groupBox4.Controls.Add(this.txtDirectDomain);
|
||||||
this.groupBox4.Name = "groupBox4";
|
this.groupBox4.Name = "groupBox4";
|
||||||
this.groupBox4.TabStop = false;
|
this.groupBox4.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -302,22 +321,22 @@
|
|||||||
//
|
//
|
||||||
// tabPageBlock
|
// tabPageBlock
|
||||||
//
|
//
|
||||||
this.tabPageBlock.Controls.Add(this.panel3);
|
|
||||||
resources.ApplyResources(this.tabPageBlock, "tabPageBlock");
|
resources.ApplyResources(this.tabPageBlock, "tabPageBlock");
|
||||||
|
this.tabPageBlock.Controls.Add(this.panel3);
|
||||||
this.tabPageBlock.Name = "tabPageBlock";
|
this.tabPageBlock.Name = "tabPageBlock";
|
||||||
this.tabPageBlock.UseVisualStyleBackColor = true;
|
this.tabPageBlock.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// panel3
|
// panel3
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
this.panel3.Controls.Add(this.groupBox2);
|
this.panel3.Controls.Add(this.groupBox2);
|
||||||
this.panel3.Controls.Add(this.groupBox1);
|
this.panel3.Controls.Add(this.groupBox1);
|
||||||
resources.ApplyResources(this.panel3, "panel3");
|
|
||||||
this.panel3.Name = "panel3";
|
this.panel3.Name = "panel3";
|
||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
//
|
//
|
||||||
this.groupBox2.Controls.Add(this.txtBlockIp);
|
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
|
this.groupBox2.Controls.Add(this.txtBlockIp);
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -328,8 +347,8 @@
|
|||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
this.groupBox1.Controls.Add(this.txtBlockDomain);
|
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.txtBlockDomain);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -340,15 +359,15 @@
|
|||||||
//
|
//
|
||||||
// tabPageRuleList
|
// tabPageRuleList
|
||||||
//
|
//
|
||||||
this.tabPageRuleList.Controls.Add(this.lvRoutings);
|
|
||||||
resources.ApplyResources(this.tabPageRuleList, "tabPageRuleList");
|
resources.ApplyResources(this.tabPageRuleList, "tabPageRuleList");
|
||||||
|
this.tabPageRuleList.Controls.Add(this.lvRoutings);
|
||||||
this.tabPageRuleList.Name = "tabPageRuleList";
|
this.tabPageRuleList.Name = "tabPageRuleList";
|
||||||
this.tabPageRuleList.UseVisualStyleBackColor = true;
|
this.tabPageRuleList.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// lvRoutings
|
// lvRoutings
|
||||||
//
|
//
|
||||||
this.lvRoutings.ContextMenuStrip = this.cmsLv;
|
|
||||||
resources.ApplyResources(this.lvRoutings, "lvRoutings");
|
resources.ApplyResources(this.lvRoutings, "lvRoutings");
|
||||||
|
this.lvRoutings.ContextMenuStrip = this.cmsLv;
|
||||||
this.lvRoutings.FullRowSelect = true;
|
this.lvRoutings.FullRowSelect = true;
|
||||||
this.lvRoutings.GridLines = true;
|
this.lvRoutings.GridLines = true;
|
||||||
this.lvRoutings.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
this.lvRoutings.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||||
@@ -443,5 +462,7 @@
|
|||||||
private System.Windows.Forms.CheckBox chkenableRoutingAdvanced;
|
private System.Windows.Forms.CheckBox chkenableRoutingAdvanced;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemBasic;
|
private System.Windows.Forms.ToolStripMenuItem MenuItemBasic;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuImportBasicRules;
|
private System.Windows.Forms.ToolStripMenuItem menuImportBasicRules;
|
||||||
|
private System.Windows.Forms.ComboBox cmbdomainMatcher;
|
||||||
|
private System.Windows.Forms.Label label6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,6 +22,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
cmbdomainStrategy.Text = config.domainStrategy;
|
cmbdomainStrategy.Text = config.domainStrategy;
|
||||||
chkenableRoutingAdvanced.Checked = config.enableRoutingAdvanced;
|
chkenableRoutingAdvanced.Checked = config.enableRoutingAdvanced;
|
||||||
|
cmbdomainMatcher.Text = config.domainMatcher;
|
||||||
|
|
||||||
if (config.routings == null)
|
if (config.routings == null)
|
||||||
{
|
{
|
||||||
@@ -50,6 +51,8 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
config.domainStrategy = cmbdomainStrategy.Text;
|
config.domainStrategy = cmbdomainStrategy.Text;
|
||||||
config.enableRoutingAdvanced = chkenableRoutingAdvanced.Checked;
|
config.enableRoutingAdvanced = chkenableRoutingAdvanced.Checked;
|
||||||
|
config.domainMatcher = cmbdomainMatcher.Text;
|
||||||
|
|
||||||
EndBindingLockedData();
|
EndBindingLockedData();
|
||||||
|
|
||||||
if (ConfigHandler.SaveRouting(ref config) == 0)
|
if (ConfigHandler.SaveRouting(ref config) == 0)
|
||||||
@@ -144,6 +147,7 @@ namespace v2rayN.Forms
|
|||||||
lvRoutings.Columns.Add(UIRes.I18N("LvAlias"), 200);
|
lvRoutings.Columns.Add(UIRes.I18N("LvAlias"), 200);
|
||||||
lvRoutings.Columns.Add(UIRes.I18N("LvCount"), 60);
|
lvRoutings.Columns.Add(UIRes.I18N("LvCount"), 60);
|
||||||
lvRoutings.Columns.Add(UIRes.I18N("LvUrl"), 240);
|
lvRoutings.Columns.Add(UIRes.I18N("LvUrl"), 240);
|
||||||
|
lvRoutings.Columns.Add(UIRes.I18N("LvCustomIcon"), 240);
|
||||||
|
|
||||||
lvRoutings.EndUpdate();
|
lvRoutings.EndUpdate();
|
||||||
}
|
}
|
||||||
@@ -171,6 +175,7 @@ namespace v2rayN.Forms
|
|||||||
Utils.AddSubItem(lvItem, "remarks", item.remarks);
|
Utils.AddSubItem(lvItem, "remarks", item.remarks);
|
||||||
Utils.AddSubItem(lvItem, "count", item.rules.Count.ToString());
|
Utils.AddSubItem(lvItem, "count", item.rules.Count.ToString());
|
||||||
Utils.AddSubItem(lvItem, "url", item.url);
|
Utils.AddSubItem(lvItem, "url", item.url);
|
||||||
|
Utils.AddSubItem(lvItem, "customIcon", item.customIcon);
|
||||||
|
|
||||||
if (lvItem != null) lvRoutings.Items.Add(lvItem);
|
if (lvItem != null) lvRoutings.Items.Add(lvItem);
|
||||||
}
|
}
|
||||||
@@ -295,6 +300,8 @@ namespace v2rayN.Forms
|
|||||||
txtDirectIp.Text = "geoip:private,geoip:cn";
|
txtDirectIp.Text = "geoip:private,geoip:cn";
|
||||||
|
|
||||||
txtBlockDomain.Text = "geosite:category-ads-all";
|
txtBlockDomain.Text = "geosite:category-ads-all";
|
||||||
|
|
||||||
|
UI.Show(UIRes.I18N("OperationSuccess"));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -124,12 +124,6 @@
|
|||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 545</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>817, 60</value>
|
|
||||||
</data>
|
|
||||||
<data name="labRoutingTips.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="labRoutingTips.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>518, 16</value>
|
<value>518, 16</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -142,8 +136,17 @@
|
|||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>817, 51</value>
|
<value>0, 545</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>817, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>77, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Text" xml:space="preserve">
|
||||||
|
<value>域名匹配算法</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkenableRoutingAdvanced.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkenableRoutingAdvanced.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>120, 16</value>
|
<value>120, 16</value>
|
||||||
@@ -157,8 +160,8 @@
|
|||||||
<data name="linkLabelRoutingDoc.Text" xml:space="preserve">
|
<data name="linkLabelRoutingDoc.Text" xml:space="preserve">
|
||||||
<value>域名解析策略</value>
|
<value>域名解析策略</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>149, 92</value>
|
<value>817, 51</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuAdd.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuAdd.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>148, 22</value>
|
<value>148, 22</value>
|
||||||
@@ -190,8 +193,14 @@
|
|||||||
<data name="MenuItemAdvanced.Text" xml:space="preserve">
|
<data name="MenuItemAdvanced.Text" xml:space="preserve">
|
||||||
<value>高级功能</value>
|
<value>高级功能</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>817, 25</value>
|
<value>149, 92</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportBasicRules.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>172, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportBasicRules.Text" xml:space="preserve">
|
||||||
|
<value>一键导入基础规则</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MenuItemBasic.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="MenuItemBasic.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>68, 21</value>
|
<value>68, 21</value>
|
||||||
@@ -199,14 +208,23 @@
|
|||||||
<data name="MenuItemBasic.Text" xml:space="preserve">
|
<data name="MenuItemBasic.Text" xml:space="preserve">
|
||||||
<value>基础功能</value>
|
<value>基础功能</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuImportBasicRules.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>817, 25</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuImportBasicRules.Text" xml:space="preserve">
|
<data name="txtProxyIp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>一键导入基础规则</value>
|
<value>405, 417</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabNormal.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>817, 469</value>
|
<value>411, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtProxyDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>386, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>392, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>803, 437</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPageProxy.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tabPageProxy.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>809, 443</value>
|
<value>809, 443</value>
|
||||||
@@ -214,20 +232,20 @@
|
|||||||
<data name="tabPageProxy.Text" xml:space="preserve">
|
<data name="tabPageProxy.Text" xml:space="preserve">
|
||||||
<value> 1.代理的Domain或IP </value>
|
<value> 1.代理的Domain或IP </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel5.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtDirectIp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>803, 437</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox5.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>411, 437</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtProxyIp.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>405, 417</value>
|
<value>405, 417</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox6.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>411, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDirectDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>386, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>392, 437</value>
|
<value>392, 437</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtProxyDomain.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>386, 417</value>
|
<value>803, 437</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPageDirect.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tabPageDirect.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>809, 443</value>
|
<value>809, 443</value>
|
||||||
@@ -235,20 +253,20 @@
|
|||||||
<data name="tabPageDirect.Text" xml:space="preserve">
|
<data name="tabPageDirect.Text" xml:space="preserve">
|
||||||
<value> 2.直连的Domain或IP </value>
|
<value> 2.直连的Domain或IP </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtBlockIp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>803, 437</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>411, 437</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtDirectIp.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>405, 417</value>
|
<value>405, 417</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>411, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtBlockDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>386, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>392, 437</value>
|
<value>392, 437</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtDirectDomain.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>386, 417</value>
|
<value>803, 437</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPageBlock.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tabPageBlock.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>809, 443</value>
|
<value>809, 443</value>
|
||||||
@@ -256,27 +274,6 @@
|
|||||||
<data name="tabPageBlock.Text" xml:space="preserve">
|
<data name="tabPageBlock.Text" xml:space="preserve">
|
||||||
<value> 3.阻止的Domain或IP </value>
|
<value> 3.阻止的Domain或IP </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>803, 437</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>411, 437</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtBlockIp.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>405, 417</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>392, 437</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtBlockDomain.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>386, 417</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPageRuleList.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>809, 443</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPageRuleList.Text" xml:space="preserve">
|
|
||||||
<value> 预定义规则集列表</value>
|
|
||||||
</data>
|
|
||||||
<data name="lvRoutings.Items" mimetype="application/x-microsoft.net.object.binary.base64">
|
<data name="lvRoutings.Items" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
<value>
|
<value>
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
@@ -297,6 +294,15 @@
|
|||||||
<data name="lvRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="lvRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>803, 437</value>
|
<value>803, 437</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tabPageRuleList.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>809, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageRuleList.Text" xml:space="preserve">
|
||||||
|
<value> 预定义规则集列表</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabNormal.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>817, 469</value>
|
||||||
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>817, 605</value>
|
<value>817, 605</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
265
v2rayN/v2rayN/Forms/ServerTransportControl.Designer.cs
generated
Normal file
265
v2rayN/v2rayN/Forms/ServerTransportControl.Designer.cs
generated
Normal file
@@ -0,0 +1,265 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class ServerTransportControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 组件设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerTransportControl));
|
||||||
|
this.gbTransport = new System.Windows.Forms.GroupBox();
|
||||||
|
this.panTlsMore = new System.Windows.Forms.Panel();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.txtSNI = new System.Windows.Forms.TextBox();
|
||||||
|
this.labSNI = new System.Windows.Forms.Label();
|
||||||
|
this.labAllowInsecure = new System.Windows.Forms.Label();
|
||||||
|
this.cmbAllowInsecure = new System.Windows.Forms.ComboBox();
|
||||||
|
this.tipNetwork = new System.Windows.Forms.Label();
|
||||||
|
this.txtPath = new System.Windows.Forms.TextBox();
|
||||||
|
this.cmbNetwork = new System.Windows.Forms.ComboBox();
|
||||||
|
this.labNetwork = new System.Windows.Forms.Label();
|
||||||
|
this.labPath = new System.Windows.Forms.Label();
|
||||||
|
this.tipPath = new System.Windows.Forms.Label();
|
||||||
|
this.tipRequestHost = new System.Windows.Forms.Label();
|
||||||
|
this.labStreamSecurity = new System.Windows.Forms.Label();
|
||||||
|
this.cmbStreamSecurity = new System.Windows.Forms.ComboBox();
|
||||||
|
this.tipHeaderType = new System.Windows.Forms.Label();
|
||||||
|
this.txtRequestHost = new System.Windows.Forms.TextBox();
|
||||||
|
this.labHeaderType = new System.Windows.Forms.Label();
|
||||||
|
this.labRequestHost = new System.Windows.Forms.Label();
|
||||||
|
this.cmbHeaderType = new System.Windows.Forms.ComboBox();
|
||||||
|
this.clbAlpn = new System.Windows.Forms.CheckedListBox();
|
||||||
|
this.gbTransport.SuspendLayout();
|
||||||
|
this.panTlsMore.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// gbTransport
|
||||||
|
//
|
||||||
|
this.gbTransport.Controls.Add(this.panTlsMore);
|
||||||
|
this.gbTransport.Controls.Add(this.tipNetwork);
|
||||||
|
this.gbTransport.Controls.Add(this.txtPath);
|
||||||
|
this.gbTransport.Controls.Add(this.cmbNetwork);
|
||||||
|
this.gbTransport.Controls.Add(this.labNetwork);
|
||||||
|
this.gbTransport.Controls.Add(this.labPath);
|
||||||
|
this.gbTransport.Controls.Add(this.tipPath);
|
||||||
|
this.gbTransport.Controls.Add(this.tipRequestHost);
|
||||||
|
this.gbTransport.Controls.Add(this.labStreamSecurity);
|
||||||
|
this.gbTransport.Controls.Add(this.cmbStreamSecurity);
|
||||||
|
this.gbTransport.Controls.Add(this.tipHeaderType);
|
||||||
|
this.gbTransport.Controls.Add(this.txtRequestHost);
|
||||||
|
this.gbTransport.Controls.Add(this.labHeaderType);
|
||||||
|
this.gbTransport.Controls.Add(this.labRequestHost);
|
||||||
|
this.gbTransport.Controls.Add(this.cmbHeaderType);
|
||||||
|
resources.ApplyResources(this.gbTransport, "gbTransport");
|
||||||
|
this.gbTransport.Name = "gbTransport";
|
||||||
|
this.gbTransport.TabStop = false;
|
||||||
|
//
|
||||||
|
// panTlsMore
|
||||||
|
//
|
||||||
|
this.panTlsMore.Controls.Add(this.clbAlpn);
|
||||||
|
this.panTlsMore.Controls.Add(this.label1);
|
||||||
|
this.panTlsMore.Controls.Add(this.txtSNI);
|
||||||
|
this.panTlsMore.Controls.Add(this.labSNI);
|
||||||
|
this.panTlsMore.Controls.Add(this.labAllowInsecure);
|
||||||
|
this.panTlsMore.Controls.Add(this.cmbAllowInsecure);
|
||||||
|
resources.ApplyResources(this.panTlsMore, "panTlsMore");
|
||||||
|
this.panTlsMore.Name = "panTlsMore";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// txtSNI
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtSNI, "txtSNI");
|
||||||
|
this.txtSNI.Name = "txtSNI";
|
||||||
|
//
|
||||||
|
// labSNI
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labSNI, "labSNI");
|
||||||
|
this.labSNI.Name = "labSNI";
|
||||||
|
//
|
||||||
|
// labAllowInsecure
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labAllowInsecure, "labAllowInsecure");
|
||||||
|
this.labAllowInsecure.Name = "labAllowInsecure";
|
||||||
|
//
|
||||||
|
// cmbAllowInsecure
|
||||||
|
//
|
||||||
|
this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbAllowInsecure.FormattingEnabled = true;
|
||||||
|
this.cmbAllowInsecure.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbAllowInsecure.Items"),
|
||||||
|
resources.GetString("cmbAllowInsecure.Items1"),
|
||||||
|
resources.GetString("cmbAllowInsecure.Items2")});
|
||||||
|
resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure");
|
||||||
|
this.cmbAllowInsecure.Name = "cmbAllowInsecure";
|
||||||
|
//
|
||||||
|
// tipNetwork
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tipNetwork, "tipNetwork");
|
||||||
|
this.tipNetwork.Name = "tipNetwork";
|
||||||
|
//
|
||||||
|
// txtPath
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtPath, "txtPath");
|
||||||
|
this.txtPath.Name = "txtPath";
|
||||||
|
//
|
||||||
|
// cmbNetwork
|
||||||
|
//
|
||||||
|
this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbNetwork.FormattingEnabled = true;
|
||||||
|
this.cmbNetwork.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbNetwork.Items"),
|
||||||
|
resources.GetString("cmbNetwork.Items1"),
|
||||||
|
resources.GetString("cmbNetwork.Items2"),
|
||||||
|
resources.GetString("cmbNetwork.Items3"),
|
||||||
|
resources.GetString("cmbNetwork.Items4"),
|
||||||
|
resources.GetString("cmbNetwork.Items5")});
|
||||||
|
resources.ApplyResources(this.cmbNetwork, "cmbNetwork");
|
||||||
|
this.cmbNetwork.Name = "cmbNetwork";
|
||||||
|
this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// labNetwork
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labNetwork, "labNetwork");
|
||||||
|
this.labNetwork.Name = "labNetwork";
|
||||||
|
//
|
||||||
|
// labPath
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labPath, "labPath");
|
||||||
|
this.labPath.Name = "labPath";
|
||||||
|
//
|
||||||
|
// tipPath
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tipPath, "tipPath");
|
||||||
|
this.tipPath.Name = "tipPath";
|
||||||
|
//
|
||||||
|
// tipRequestHost
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tipRequestHost, "tipRequestHost");
|
||||||
|
this.tipRequestHost.Name = "tipRequestHost";
|
||||||
|
//
|
||||||
|
// labStreamSecurity
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labStreamSecurity, "labStreamSecurity");
|
||||||
|
this.labStreamSecurity.Name = "labStreamSecurity";
|
||||||
|
//
|
||||||
|
// cmbStreamSecurity
|
||||||
|
//
|
||||||
|
this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbStreamSecurity.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity");
|
||||||
|
this.cmbStreamSecurity.Name = "cmbStreamSecurity";
|
||||||
|
this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// tipHeaderType
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tipHeaderType, "tipHeaderType");
|
||||||
|
this.tipHeaderType.Name = "tipHeaderType";
|
||||||
|
//
|
||||||
|
// txtRequestHost
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtRequestHost, "txtRequestHost");
|
||||||
|
this.txtRequestHost.Name = "txtRequestHost";
|
||||||
|
//
|
||||||
|
// labHeaderType
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labHeaderType, "labHeaderType");
|
||||||
|
this.labHeaderType.Name = "labHeaderType";
|
||||||
|
//
|
||||||
|
// labRequestHost
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labRequestHost, "labRequestHost");
|
||||||
|
this.labRequestHost.Name = "labRequestHost";
|
||||||
|
//
|
||||||
|
// cmbHeaderType
|
||||||
|
//
|
||||||
|
this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbHeaderType.FormattingEnabled = true;
|
||||||
|
this.cmbHeaderType.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbHeaderType.Items"),
|
||||||
|
resources.GetString("cmbHeaderType.Items1"),
|
||||||
|
resources.GetString("cmbHeaderType.Items2"),
|
||||||
|
resources.GetString("cmbHeaderType.Items3"),
|
||||||
|
resources.GetString("cmbHeaderType.Items4"),
|
||||||
|
resources.GetString("cmbHeaderType.Items5"),
|
||||||
|
resources.GetString("cmbHeaderType.Items6")});
|
||||||
|
resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType");
|
||||||
|
this.cmbHeaderType.Name = "cmbHeaderType";
|
||||||
|
//
|
||||||
|
// clbAlpn
|
||||||
|
//
|
||||||
|
this.clbAlpn.CheckOnClick = true;
|
||||||
|
resources.ApplyResources(this.clbAlpn, "clbAlpn");
|
||||||
|
this.clbAlpn.FormattingEnabled = true;
|
||||||
|
this.clbAlpn.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("clbAlpn.Items"),
|
||||||
|
resources.GetString("clbAlpn.Items1")});
|
||||||
|
this.clbAlpn.MultiColumn = true;
|
||||||
|
this.clbAlpn.Name = "clbAlpn";
|
||||||
|
//
|
||||||
|
// ServerTransportControl
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.gbTransport);
|
||||||
|
this.Name = "ServerTransportControl";
|
||||||
|
this.Load += new System.EventHandler(this.ServerTransportControl_Load);
|
||||||
|
this.gbTransport.ResumeLayout(false);
|
||||||
|
this.gbTransport.PerformLayout();
|
||||||
|
this.panTlsMore.ResumeLayout(false);
|
||||||
|
this.panTlsMore.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.GroupBox gbTransport;
|
||||||
|
private System.Windows.Forms.Panel panTlsMore;
|
||||||
|
private System.Windows.Forms.TextBox txtSNI;
|
||||||
|
private System.Windows.Forms.Label labSNI;
|
||||||
|
private System.Windows.Forms.Label labAllowInsecure;
|
||||||
|
private System.Windows.Forms.ComboBox cmbAllowInsecure;
|
||||||
|
private System.Windows.Forms.Label tipNetwork;
|
||||||
|
private System.Windows.Forms.TextBox txtPath;
|
||||||
|
private System.Windows.Forms.ComboBox cmbNetwork;
|
||||||
|
private System.Windows.Forms.Label labNetwork;
|
||||||
|
private System.Windows.Forms.Label labPath;
|
||||||
|
private System.Windows.Forms.Label tipPath;
|
||||||
|
private System.Windows.Forms.Label tipRequestHost;
|
||||||
|
private System.Windows.Forms.Label labStreamSecurity;
|
||||||
|
private System.Windows.Forms.ComboBox cmbStreamSecurity;
|
||||||
|
private System.Windows.Forms.Label tipHeaderType;
|
||||||
|
private System.Windows.Forms.TextBox txtRequestHost;
|
||||||
|
private System.Windows.Forms.Label labHeaderType;
|
||||||
|
private System.Windows.Forms.Label labRequestHost;
|
||||||
|
private System.Windows.Forms.ComboBox cmbHeaderType;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.CheckedListBox clbAlpn;
|
||||||
|
}
|
||||||
|
}
|
||||||
205
v2rayN/v2rayN/Forms/ServerTransportControl.cs
Normal file
205
v2rayN/v2rayN/Forms/ServerTransportControl.cs
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class ServerTransportControl : UserControl
|
||||||
|
{
|
||||||
|
public bool AllowXtls { get; set; }
|
||||||
|
private VmessItem vmessItem = null;
|
||||||
|
|
||||||
|
public ServerTransportControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
private void ServerTransportControl_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Init(VmessItem item)
|
||||||
|
{
|
||||||
|
vmessItem = item;
|
||||||
|
|
||||||
|
cmbStreamSecurity.Items.Clear();
|
||||||
|
cmbStreamSecurity.Items.Add(string.Empty);
|
||||||
|
cmbStreamSecurity.Items.Add(Global.StreamSecurity);
|
||||||
|
if (AllowXtls)
|
||||||
|
{
|
||||||
|
cmbStreamSecurity.Items.Add(Global.StreamSecurityX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindingServer(VmessItem item)
|
||||||
|
{
|
||||||
|
Init(item);
|
||||||
|
|
||||||
|
cmbNetwork.Text = vmessItem.network;
|
||||||
|
cmbHeaderType.Text = vmessItem.headerType;
|
||||||
|
txtRequestHost.Text = vmessItem.requestHost;
|
||||||
|
txtPath.Text = vmessItem.path;
|
||||||
|
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
||||||
|
cmbAllowInsecure.Text = vmessItem.allowInsecure;
|
||||||
|
txtSNI.Text = vmessItem.sni;
|
||||||
|
|
||||||
|
if (vmessItem.alpn != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < clbAlpn.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (vmessItem.alpn.Contains(clbAlpn.Items[i].ToString()))
|
||||||
|
{
|
||||||
|
clbAlpn.SetItemChecked(i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ClearServer(VmessItem item)
|
||||||
|
{
|
||||||
|
Init(item);
|
||||||
|
|
||||||
|
cmbNetwork.Text = Global.DefaultNetwork;
|
||||||
|
cmbHeaderType.Text = Global.None;
|
||||||
|
txtRequestHost.Text = "";
|
||||||
|
cmbStreamSecurity.Text = "";
|
||||||
|
cmbAllowInsecure.Text = "";
|
||||||
|
txtPath.Text = "";
|
||||||
|
txtSNI.Text = "";
|
||||||
|
for (int i = 0; i < clbAlpn.Items.Count; i++)
|
||||||
|
{
|
||||||
|
clbAlpn.SetItemChecked(i, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void EndBindingServer()
|
||||||
|
{
|
||||||
|
string network = cmbNetwork.Text;
|
||||||
|
string headerType = cmbHeaderType.Text;
|
||||||
|
string requestHost = txtRequestHost.Text;
|
||||||
|
string path = txtPath.Text;
|
||||||
|
string streamSecurity = cmbStreamSecurity.Text;
|
||||||
|
string allowInsecure = cmbAllowInsecure.Text;
|
||||||
|
string sni = txtSNI.Text;
|
||||||
|
|
||||||
|
vmessItem.network = network;
|
||||||
|
vmessItem.headerType = headerType;
|
||||||
|
vmessItem.requestHost = requestHost.Replace(" ", "");
|
||||||
|
vmessItem.path = path.Replace(" ", "");
|
||||||
|
vmessItem.streamSecurity = streamSecurity;
|
||||||
|
vmessItem.allowInsecure = allowInsecure;
|
||||||
|
vmessItem.sni = sni;
|
||||||
|
|
||||||
|
var alpn = new List<string>();
|
||||||
|
for (int i = 0; i < clbAlpn.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (clbAlpn.GetItemChecked(i))
|
||||||
|
{
|
||||||
|
alpn.Add(clbAlpn.Items[i].ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vmessItem.alpn = alpn;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cmbNetwork_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetHeaderType();
|
||||||
|
SetTips();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetHeaderType()
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Clear();
|
||||||
|
|
||||||
|
string network = cmbNetwork.Text;
|
||||||
|
if (Utils.IsNullOrEmpty(network))
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.None);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (network.Equals(Global.DefaultNetwork))
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.None);
|
||||||
|
cmbHeaderType.Items.Add(Global.TcpHeaderHttp);
|
||||||
|
}
|
||||||
|
else if (network.Equals("kcp") || network.Equals("quic"))
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.None);
|
||||||
|
cmbHeaderType.Items.Add("srtp");
|
||||||
|
cmbHeaderType.Items.Add("utp");
|
||||||
|
cmbHeaderType.Items.Add("wechat-video");
|
||||||
|
cmbHeaderType.Items.Add("dtls");
|
||||||
|
cmbHeaderType.Items.Add("wireguard");
|
||||||
|
}
|
||||||
|
else if (network.Equals("grpc"))
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.GrpcgunMode);
|
||||||
|
cmbHeaderType.Items.Add(Global.GrpcmultiMode);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.None);
|
||||||
|
}
|
||||||
|
cmbHeaderType.SelectedIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetTips()
|
||||||
|
{
|
||||||
|
string network = cmbNetwork.Text;
|
||||||
|
if (Utils.IsNullOrEmpty(network))
|
||||||
|
{
|
||||||
|
network = Global.DefaultNetwork;
|
||||||
|
}
|
||||||
|
labHeaderType.Visible = true;
|
||||||
|
tipRequestHost.Text =
|
||||||
|
tipPath.Text =
|
||||||
|
tipHeaderType.Text = string.Empty;
|
||||||
|
|
||||||
|
if (network.Equals(Global.DefaultNetwork))
|
||||||
|
{
|
||||||
|
tipRequestHost.Text = UIRes.I18N("TransportRequestHostTip1");
|
||||||
|
tipHeaderType.Text = UIRes.I18N("TransportHeaderTypeTip1");
|
||||||
|
}
|
||||||
|
else if (network.Equals("kcp"))
|
||||||
|
{
|
||||||
|
tipHeaderType.Text = UIRes.I18N("TransportHeaderTypeTip2");
|
||||||
|
}
|
||||||
|
else if (network.Equals("ws"))
|
||||||
|
{
|
||||||
|
tipRequestHost.Text = UIRes.I18N("TransportRequestHostTip2");
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip1");
|
||||||
|
}
|
||||||
|
else if (network.Equals("h2"))
|
||||||
|
{
|
||||||
|
tipRequestHost.Text = UIRes.I18N("TransportRequestHostTip3");
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip2");
|
||||||
|
}
|
||||||
|
else if (network.Equals("quic"))
|
||||||
|
{
|
||||||
|
tipRequestHost.Text = UIRes.I18N("TransportRequestHostTip4");
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip3");
|
||||||
|
tipHeaderType.Text = UIRes.I18N("TransportHeaderTypeTip3");
|
||||||
|
}
|
||||||
|
else if (network.Equals("grpc"))
|
||||||
|
{
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip4");
|
||||||
|
tipHeaderType.Text = UIRes.I18N("TransportHeaderTypeTip4");
|
||||||
|
labHeaderType.Visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string security = cmbStreamSecurity.Text;
|
||||||
|
if (Utils.IsNullOrEmpty(security))
|
||||||
|
{
|
||||||
|
panTlsMore.Hide();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
panTlsMore.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
777
v2rayN/v2rayN/Forms/ServerTransportControl.resx
Normal file
777
v2rayN/v2rayN/Forms/ServerTransportControl.resx
Normal file
@@ -0,0 +1,777 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="clbAlpn.ColumnWidth" type="System.Int32, mscorlib">
|
||||||
|
<value>70</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Items" xml:space="preserve">
|
||||||
|
<value>h2</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Items1" xml:space="preserve">
|
||||||
|
<value>http/1.1</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="clbAlpn.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>313, 7</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>172, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>44</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbAlpn.Name" xml:space="preserve">
|
||||||
|
<value>clbAlpn</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbAlpn.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbAlpn.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbAlpn.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>241, 11</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>43</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>alpn</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSNI.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>100, 39</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSNI.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>385, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSNI.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtSNI.Name" xml:space="preserve">
|
||||||
|
<value>txtSNI</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtSNI.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtSNI.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtSNI.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 43</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>32</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.Text" xml:space="preserve">
|
||||||
|
<value>SNI</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labSNI.Name" xml:space="preserve">
|
||||||
|
<value>labSNI</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labSNI.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labSNI.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labSNI.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 11</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>31</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Text" xml:space="preserve">
|
||||||
|
<value>allowInsecure</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labAllowInsecure.Name" xml:space="preserve">
|
||||||
|
<value>labAllowInsecure</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labAllowInsecure.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labAllowInsecure.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labAllowInsecure.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Items" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Items1" xml:space="preserve">
|
||||||
|
<value>true</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Items2" xml:space="preserve">
|
||||||
|
<value>false</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>100, 7</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>80, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbAllowInsecure.Name" xml:space="preserve">
|
||||||
|
<value>cmbAllowInsecure</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbAllowInsecure.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbAllowInsecure.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbAllowInsecure.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="panTlsMore.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>200, 149</value>
|
||||||
|
</data>
|
||||||
|
<data name="panTlsMore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>500, 71</value>
|
||||||
|
</data>
|
||||||
|
<data name="panTlsMore.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>33</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panTlsMore.Name" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panTlsMore.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panTlsMore.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panTlsMore.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>350, 32</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>113, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>15</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.Text" xml:space="preserve">
|
||||||
|
<value>*Default value tcp</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipNetwork.Name" xml:space="preserve">
|
||||||
|
<value>tipNetwork</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipNetwork.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipNetwork.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipNetwork.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 124</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>396, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPath.Name" xml:space="preserve">
|
||||||
|
<value>txtPath</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPath.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPath.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPath.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Items" xml:space="preserve">
|
||||||
|
<value>tcp</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Items1" xml:space="preserve">
|
||||||
|
<value>kcp</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Items2" xml:space="preserve">
|
||||||
|
<value>ws</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Items3" xml:space="preserve">
|
||||||
|
<value>h2</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Items4" xml:space="preserve">
|
||||||
|
<value>quic</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Items5" xml:space="preserve">
|
||||||
|
<value>grpc</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>192, 28</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbNetwork.Name" xml:space="preserve">
|
||||||
|
<value>cmbNetwork</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbNetwork.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbNetwork.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbNetwork.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 32</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>13</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Text" xml:space="preserve">
|
||||||
|
<value>Transport protocol(network)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labNetwork.Name" xml:space="preserve">
|
||||||
|
<value>labNetwork</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labNetwork.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labNetwork.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labNetwork.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 128</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>27</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Text" xml:space="preserve">
|
||||||
|
<value>Path</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labPath.Name" xml:space="preserve">
|
||||||
|
<value>labPath</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labPath.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labPath.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labPath.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>529, 128</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>11, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>24</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipPath.Name" xml:space="preserve">
|
||||||
|
<value>tipPath</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipPath.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipPath.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipPath.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>464, 96</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>11, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>23</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipRequestHost.Name" xml:space="preserve">
|
||||||
|
<value>tipRequestHost</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipRequestHost.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipRequestHost.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipRequestHost.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 160</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>22</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Text" xml:space="preserve">
|
||||||
|
<value>TLS</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labStreamSecurity.Name" xml:space="preserve">
|
||||||
|
<value>labStreamSecurity</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labStreamSecurity.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labStreamSecurity.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labStreamSecurity.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 156</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbStreamSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>60, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbStreamSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbStreamSecurity.Name" xml:space="preserve">
|
||||||
|
<value>cmbStreamSecurity</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbStreamSecurity.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbStreamSecurity.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbStreamSecurity.ZOrder" xml:space="preserve">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>282, 64</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>11, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>20</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipHeaderType.Name" xml:space="preserve">
|
||||||
|
<value>tipHeaderType</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipHeaderType.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipHeaderType.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipHeaderType.ZOrder" xml:space="preserve">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>158, 92</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>300, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRequestHost.Name" xml:space="preserve">
|
||||||
|
<value>txtRequestHost</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRequestHost.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRequestHost.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRequestHost.ZOrder" xml:space="preserve">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 64</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>19</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Text" xml:space="preserve">
|
||||||
|
<value>Camouflage type</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labHeaderType.Name" xml:space="preserve">
|
||||||
|
<value>labHeaderType</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labHeaderType.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labHeaderType.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labHeaderType.ZOrder" xml:space="preserve">
|
||||||
|
<value>12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 96</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>17</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Text" xml:space="preserve">
|
||||||
|
<value>Camouflage domain(host)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRequestHost.Name" xml:space="preserve">
|
||||||
|
<value>labRequestHost</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRequestHost.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRequestHost.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRequestHost.ZOrder" xml:space="preserve">
|
||||||
|
<value>13</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Items" xml:space="preserve">
|
||||||
|
<value>none</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Items1" xml:space="preserve">
|
||||||
|
<value>http</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Items2" xml:space="preserve">
|
||||||
|
<value>srtp</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Items3" xml:space="preserve">
|
||||||
|
<value>utp</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Items4" xml:space="preserve">
|
||||||
|
<value>wechat-video</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Items5" xml:space="preserve">
|
||||||
|
<value>dtls</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Items6" xml:space="preserve">
|
||||||
|
<value>wireguard</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbHeaderType.Name" xml:space="preserve">
|
||||||
|
<value>cmbHeaderType</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbHeaderType.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbHeaderType.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbHeaderType.ZOrder" xml:space="preserve">
|
||||||
|
<value>14</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>723, 223</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>22</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Text" xml:space="preserve">
|
||||||
|
<value>Transport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>gbTransport.Name" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>gbTransport.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>gbTransport.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>gbTransport.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>723, 223</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>ServerTransportControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
193
v2rayN/v2rayN/Forms/ServerTransportControl.zh-Hans.resx
Normal file
193
v2rayN/v2rayN/Forms/ServerTransportControl.zh-Hans.resx
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="tipNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.Text" xml:space="preserve">
|
||||||
|
<value>*默认tcp,选错会无法连接</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 28</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>208, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>107, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Text" xml:space="preserve">
|
||||||
|
<value>传输协议(network)</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Text" xml:space="preserve">
|
||||||
|
<value>路径(path)</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>107, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Text" xml:space="preserve">
|
||||||
|
<value>传输层安全(tls)</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 92</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>331, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Text" xml:space="preserve">
|
||||||
|
<value>伪装类型(type)</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Text" xml:space="preserve">
|
||||||
|
<value>伪装域名(host)</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Text" xml:space="preserve">
|
||||||
|
<value>底层传输方式(transport)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>282, 11</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>331, 7</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>160, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSNI.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>391, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Text" xml:space="preserve">
|
||||||
|
<value>跳过证书验证(allowInsecure)</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>183, 7</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
17
v2rayN/v2rayN/Forms/SubSettingControl.Designer.cs
generated
17
v2rayN/v2rayN/Forms/SubSettingControl.Designer.cs
generated
@@ -30,6 +30,8 @@
|
|||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SubSettingControl));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SubSettingControl));
|
||||||
this.grbMain = new System.Windows.Forms.GroupBox();
|
this.grbMain = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtUserAgent = new System.Windows.Forms.TextBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.btnShare = new System.Windows.Forms.Button();
|
this.btnShare = new System.Windows.Forms.Button();
|
||||||
this.chkEnabled = new System.Windows.Forms.CheckBox();
|
this.chkEnabled = new System.Windows.Forms.CheckBox();
|
||||||
this.btnRemove = new System.Windows.Forms.Button();
|
this.btnRemove = new System.Windows.Forms.Button();
|
||||||
@@ -44,6 +46,8 @@
|
|||||||
//
|
//
|
||||||
// grbMain
|
// grbMain
|
||||||
//
|
//
|
||||||
|
this.grbMain.Controls.Add(this.txtUserAgent);
|
||||||
|
this.grbMain.Controls.Add(this.label1);
|
||||||
this.grbMain.Controls.Add(this.btnShare);
|
this.grbMain.Controls.Add(this.btnShare);
|
||||||
this.grbMain.Controls.Add(this.chkEnabled);
|
this.grbMain.Controls.Add(this.chkEnabled);
|
||||||
this.grbMain.Controls.Add(this.btnRemove);
|
this.grbMain.Controls.Add(this.btnRemove);
|
||||||
@@ -55,6 +59,17 @@
|
|||||||
this.grbMain.Name = "grbMain";
|
this.grbMain.Name = "grbMain";
|
||||||
this.grbMain.TabStop = false;
|
this.grbMain.TabStop = false;
|
||||||
//
|
//
|
||||||
|
// txtUserAgent
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtUserAgent, "txtUserAgent");
|
||||||
|
this.txtUserAgent.Name = "txtUserAgent";
|
||||||
|
this.txtUserAgent.Leave += new System.EventHandler(this.txtRemarks_Leave);
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
// btnShare
|
// btnShare
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.btnShare, "btnShare");
|
resources.ApplyResources(this.btnShare, "btnShare");
|
||||||
@@ -130,5 +145,7 @@
|
|||||||
private System.Windows.Forms.CheckBox chkEnabled;
|
private System.Windows.Forms.CheckBox chkEnabled;
|
||||||
private System.Windows.Forms.Button btnShare;
|
private System.Windows.Forms.Button btnShare;
|
||||||
private System.Windows.Forms.PictureBox picQRCode;
|
private System.Windows.Forms.PictureBox picQRCode;
|
||||||
|
private System.Windows.Forms.TextBox txtUserAgent;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ namespace v2rayN.Forms
|
|||||||
txtRemarks.Text = subItem.remarks.ToString();
|
txtRemarks.Text = subItem.remarks.ToString();
|
||||||
txtUrl.Text = subItem.url.ToString();
|
txtUrl.Text = subItem.url.ToString();
|
||||||
chkEnabled.Checked = subItem.enabled;
|
chkEnabled.Checked = subItem.enabled;
|
||||||
|
txtUserAgent.Text = subItem.userAgent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void EndBindingSub()
|
private void EndBindingSub()
|
||||||
@@ -44,6 +45,7 @@ namespace v2rayN.Forms
|
|||||||
subItem.remarks = txtRemarks.Text.TrimEx();
|
subItem.remarks = txtRemarks.Text.TrimEx();
|
||||||
subItem.url = txtUrl.Text.TrimEx();
|
subItem.url = txtUrl.Text.TrimEx();
|
||||||
subItem.enabled = chkEnabled.Checked;
|
subItem.enabled = chkEnabled.Checked;
|
||||||
|
subItem.userAgent = txtUserAgent.Text.TrimEx();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void txtRemarks_Leave(object sender, EventArgs e)
|
private void txtRemarks_Leave(object sender, EventArgs e)
|
||||||
|
|||||||
@@ -117,18 +117,69 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="txtUserAgent.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 111</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUserAgent.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>473, 21</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="txtUserAgent.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUserAgent.Name" xml:space="preserve">
|
||||||
|
<value>txtUserAgent</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUserAgent.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUserAgent.Parent" xml:space="preserve">
|
||||||
|
<value>grbMain</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUserAgent.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 115</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>27</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>User Agent</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>grbMain</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
<data name="btnShare.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="btnShare.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="btnShare.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="btnShare.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>434, 21</value>
|
<value>434, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnShare.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="btnShare.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>75, 23</value>
|
<value>75, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="btnShare.TabIndex" type="System.Int32, mscorlib">
|
<data name="btnShare.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>26</value>
|
<value>26</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -145,7 +196,7 @@
|
|||||||
<value>grbMain</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>btnShare.ZOrder" xml:space="preserve">
|
<data name=">>btnShare.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkEnabled.AutoSize" type="System.Boolean, mscorlib">
|
<data name="chkEnabled.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -175,7 +226,7 @@
|
|||||||
<value>grbMain</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>chkEnabled.ZOrder" xml:space="preserve">
|
<data name=">>chkEnabled.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnRemove.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="btnRemove.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
@@ -202,10 +253,10 @@
|
|||||||
<value>grbMain</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>btnRemove.ZOrder" xml:space="preserve">
|
<data name=">>btnRemove.ZOrder" xml:space="preserve">
|
||||||
<value>2</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 55</value>
|
<value>127, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUrl.Multiline" type="System.Boolean, mscorlib">
|
<data name="txtUrl.Multiline" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -217,7 +268,7 @@
|
|||||||
<value>473, 46</value>
|
<value>473, 46</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUrl.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtUrl.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>23</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtUrl.Name" xml:space="preserve">
|
<data name=">>txtUrl.Name" xml:space="preserve">
|
||||||
<value>txtUrl</value>
|
<value>txtUrl</value>
|
||||||
@@ -229,7 +280,7 @@
|
|||||||
<value>grbMain</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtUrl.ZOrder" xml:space="preserve">
|
<data name=">>txtUrl.ZOrder" xml:space="preserve">
|
||||||
<value>3</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 21</value>
|
<value>127, 21</value>
|
||||||
@@ -238,7 +289,7 @@
|
|||||||
<value>232, 21</value>
|
<value>232, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>11</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
<value>txtRemarks</value>
|
<value>txtRemarks</value>
|
||||||
@@ -250,7 +301,7 @@
|
|||||||
<value>grbMain</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
<value>4</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -280,7 +331,7 @@
|
|||||||
<value>grbMain</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
<value>5</value>
|
<value>7</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -289,7 +340,7 @@
|
|||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 55</value>
|
<value>12, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>83, 12</value>
|
<value>83, 12</value>
|
||||||
@@ -310,7 +361,7 @@
|
|||||||
<value>grbMain</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
<value>6</value>
|
<value>8</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="grbMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="grbMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Top</value>
|
<value>Top</value>
|
||||||
@@ -319,7 +370,7 @@
|
|||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="grbMain.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="grbMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>619, 110</value>
|
<value>619, 148</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="grbMain.TabIndex" type="System.Int32, mscorlib">
|
<data name="grbMain.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
@@ -346,10 +397,10 @@
|
|||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="picQRCode.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="picQRCode.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 110</value>
|
<value>0, 148</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="picQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="picQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>619, 200</value>
|
<value>619, 162</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="picQRCode.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
<data name="picQRCode.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
||||||
<value>Zoom</value>
|
<value>Zoom</value>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace v2rayN
|
|||||||
{
|
{
|
||||||
#region 常量
|
#region 常量
|
||||||
|
|
||||||
|
//public const string DownloadFileName = "v2ray-windows.zip";
|
||||||
public const string v2rayWebsiteUrl = @"https://www.v2fly.org/";
|
public const string v2rayWebsiteUrl = @"https://www.v2fly.org/";
|
||||||
public const string AboutUrl = @"https://github.com/2dust/v2rayN";
|
public const string AboutUrl = @"https://github.com/2dust/v2rayN";
|
||||||
public const string UpdateUrl = AboutUrl + @"/releases";
|
public const string UpdateUrl = AboutUrl + @"/releases";
|
||||||
@@ -21,7 +21,6 @@ namespace v2rayN
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string SpeedTestUrl = @"http://cachefly.cachefly.net/10mb.test";
|
public const string SpeedTestUrl = @"http://cachefly.cachefly.net/10mb.test";
|
||||||
public const string SpeedPingTestUrl = @"https://www.google.com/generate_204";
|
public const string SpeedPingTestUrl = @"https://www.google.com/generate_204";
|
||||||
public const string AvailabilityTestUrl = @"https://www.google.com/generate_204";
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CustomRoutingListUrl
|
/// CustomRoutingListUrl
|
||||||
@@ -177,6 +176,10 @@ namespace v2rayN
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string MyRegKeyLanguage = "CurrentLanguage";
|
public const string MyRegKeyLanguage = "CurrentLanguage";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public const string MyRegKeySecurityProtocolTls13 = "SecurityProtocolTls13";
|
||||||
|
/// <summary>
|
||||||
/// Icon
|
/// Icon
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string CustomIconName = "v2rayN.ico";
|
public const string CustomIconName = "v2rayN.ico";
|
||||||
@@ -193,7 +196,13 @@ namespace v2rayN
|
|||||||
|
|
||||||
public const string RoutingRuleComma = "<COMMA>";
|
public const string RoutingRuleComma = "<COMMA>";
|
||||||
|
|
||||||
public static readonly IEnumerable<string> ssSecuritys = new HashSet<string> { "aes-256-gcm", "aes-128-gcm", "chacha20-poly1305", "chacha20-ietf-poly1305", "none", "plain" };
|
public static readonly List<string> vmessSecuritys = new List<string> { "aes-128-gcm", "chacha20-poly1305", "auto", "none", "zero" };
|
||||||
|
public static readonly List<string> ssSecuritys = new List<string> { "aes-256-gcm", "aes-128-gcm", "chacha20-poly1305", "chacha20-ietf-poly1305", "none", "plain" };
|
||||||
|
public static readonly List<string> xtlsFlows = new List<string> { "", "xtls-rprx-origin", "xtls-rprx-origin-udp443", "xtls-rprx-direct", "xtls-rprx-direct-udp443" };
|
||||||
|
|
||||||
|
public const string GrpcgunMode = "gun";
|
||||||
|
public const string GrpcmultiMode = "multi";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 全局变量
|
#region 全局变量
|
||||||
|
|||||||
@@ -32,6 +32,15 @@ namespace v2rayN.Handler
|
|||||||
//转成Json
|
//转成Json
|
||||||
config = Utils.FromJson<Config>(result);
|
config = Utils.FromJson<Config>(result);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (File.Exists(Utils.GetPath(configRes)))
|
||||||
|
{
|
||||||
|
Utils.SaveLog("LoadConfig Exception");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (config == null)
|
if (config == null)
|
||||||
{
|
{
|
||||||
config = new Config
|
config = new Config
|
||||||
@@ -51,7 +60,9 @@ namespace v2rayN.Handler
|
|||||||
enableStatistics = false,
|
enableStatistics = false,
|
||||||
|
|
||||||
// 默认中等刷新率
|
// 默认中等刷新率
|
||||||
statisticsFreshRate = (int)Global.StatisticsFreshRate.medium
|
statisticsFreshRate = (int)Global.StatisticsFreshRate.medium,
|
||||||
|
|
||||||
|
enableRoutingAdvanced = true
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,6 +100,10 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
config.domainStrategy = "IPIfNonMatch";
|
config.domainStrategy = "IPIfNonMatch";
|
||||||
}
|
}
|
||||||
|
if (Utils.IsNullOrEmpty(config.domainMatcher))
|
||||||
|
{
|
||||||
|
config.domainMatcher = "linear";
|
||||||
|
}
|
||||||
|
|
||||||
//kcp
|
//kcp
|
||||||
if (config.kcpItem == null)
|
if (config.kcpItem == null)
|
||||||
@@ -113,18 +128,22 @@ namespace v2rayN.Handler
|
|||||||
config.uiItem.mainLvColWidth = new Dictionary<string, int>();
|
config.uiItem.mainLvColWidth = new Dictionary<string, int>();
|
||||||
}
|
}
|
||||||
|
|
||||||
//// 如果是用户升级,首次会有端口号为0的情况,不可用,这里处理
|
|
||||||
//if (config.pacPort == 0)
|
if (config.constItem == null)
|
||||||
//{
|
|
||||||
// config.pacPort = 8888;
|
|
||||||
//}
|
|
||||||
if (Utils.IsNullOrEmpty(config.speedTestUrl))
|
|
||||||
{
|
{
|
||||||
config.speedTestUrl = Global.SpeedTestUrl;
|
config.constItem = new ConstItem();
|
||||||
}
|
}
|
||||||
if (Utils.IsNullOrEmpty(config.speedPingTestUrl))
|
if (Utils.IsNullOrEmpty(config.constItem.speedTestUrl))
|
||||||
{
|
{
|
||||||
config.speedPingTestUrl = Global.SpeedPingTestUrl;
|
config.constItem.speedTestUrl = Global.SpeedTestUrl;
|
||||||
|
}
|
||||||
|
if (Utils.IsNullOrEmpty(config.constItem.speedPingTestUrl))
|
||||||
|
{
|
||||||
|
config.constItem.speedPingTestUrl = Global.SpeedPingTestUrl;
|
||||||
|
}
|
||||||
|
if (Utils.IsNullOrEmpty(config.constItem.defIEProxyExceptions))
|
||||||
|
{
|
||||||
|
config.constItem.defIEProxyExceptions = Global.IEProxyExceptions;
|
||||||
}
|
}
|
||||||
//if (Utils.IsNullOrEmpty(config.remoteDNS))
|
//if (Utils.IsNullOrEmpty(config.remoteDNS))
|
||||||
//{
|
//{
|
||||||
@@ -153,6 +172,11 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
VmessItem vmessItem = config.vmess[i];
|
VmessItem vmessItem = config.vmess[i];
|
||||||
UpgradeServerVersion(ref vmessItem);
|
UpgradeServerVersion(ref vmessItem);
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(vmessItem.indexId))
|
||||||
|
{
|
||||||
|
vmessItem.indexId = Utils.GetGUID(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,9 +194,8 @@ namespace v2rayN.Handler
|
|||||||
/// <param name="vmessItem"></param>
|
/// <param name="vmessItem"></param>
|
||||||
/// <param name="index"></param>
|
/// <param name="index"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static int AddServer(ref Config config, VmessItem vmessItem, int index)
|
public static int AddServer(ref Config config, VmessItem vmessItem, int index, bool toFile = true)
|
||||||
{
|
{
|
||||||
vmessItem.configVersion = 2;
|
|
||||||
vmessItem.configType = (int)EConfigType.Vmess;
|
vmessItem.configType = (int)EConfigType.Vmess;
|
||||||
|
|
||||||
vmessItem.address = vmessItem.address.TrimEx();
|
vmessItem.address = vmessItem.address.TrimEx();
|
||||||
@@ -184,6 +207,11 @@ namespace v2rayN.Handler
|
|||||||
vmessItem.path = vmessItem.path.TrimEx();
|
vmessItem.path = vmessItem.path.TrimEx();
|
||||||
vmessItem.streamSecurity = vmessItem.streamSecurity.TrimEx();
|
vmessItem.streamSecurity = vmessItem.streamSecurity.TrimEx();
|
||||||
|
|
||||||
|
if (!Global.vmessSecuritys.Contains(vmessItem.security))
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (index >= 0)
|
if (index >= 0)
|
||||||
{
|
{
|
||||||
//修改
|
//修改
|
||||||
@@ -195,21 +223,13 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//添加
|
AddServerCommon(ref config, vmessItem);
|
||||||
if (Utils.IsNullOrEmpty(vmessItem.allowInsecure))
|
|
||||||
{
|
|
||||||
vmessItem.allowInsecure = config.defAllowInsecure.ToString();
|
|
||||||
}
|
|
||||||
config.vmess.Add(vmessItem);
|
|
||||||
if (config.vmess.Count == 1)
|
|
||||||
{
|
|
||||||
config.index = 0;
|
|
||||||
Global.reloadV2ray = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToJsonFile(config);
|
if (toFile)
|
||||||
|
{
|
||||||
|
ToJsonFile(config);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,36 +239,23 @@ namespace v2rayN.Handler
|
|||||||
/// <param name="config"></param>
|
/// <param name="config"></param>
|
||||||
/// <param name="index"></param>
|
/// <param name="index"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static int RemoveServer(ref Config config, int index)
|
public static int RemoveServer(ref Config config, List<int> indexs)
|
||||||
{
|
{
|
||||||
if (index < 0 || index > config.vmess.Count - 1)
|
var indexId = config.indexId();
|
||||||
|
|
||||||
|
for (int k = indexs.Count - 1; k >= 0; k--)
|
||||||
{
|
{
|
||||||
return -1;
|
var index = indexs[k];
|
||||||
}
|
if (index < 0 || index > config.vmess.Count - 1)
|
||||||
|
|
||||||
//删除
|
|
||||||
config.vmess.RemoveAt(index);
|
|
||||||
|
|
||||||
|
|
||||||
//移除的是活动的
|
|
||||||
if (config.index.Equals(index))
|
|
||||||
{
|
|
||||||
if (config.vmess.Count > 0)
|
|
||||||
{
|
{
|
||||||
config.index = 0;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
config.vmess.RemoveAt(index);
|
||||||
config.index = -1;
|
|
||||||
}
|
|
||||||
Global.reloadV2ray = true;
|
|
||||||
}
|
|
||||||
else if (index < config.index)//移除活动之前的
|
|
||||||
{
|
|
||||||
config.index--;
|
|
||||||
Global.reloadV2ray = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SetIndex(ref config, indexId);
|
||||||
|
|
||||||
ToJsonFile(config);
|
ToJsonFile(config);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -520,9 +527,8 @@ namespace v2rayN.Handler
|
|||||||
/// <param name="vmessItem"></param>
|
/// <param name="vmessItem"></param>
|
||||||
/// <param name="index"></param>
|
/// <param name="index"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static int AddShadowsocksServer(ref Config config, VmessItem vmessItem, int index)
|
public static int AddShadowsocksServer(ref Config config, VmessItem vmessItem, int index, bool toFile = true)
|
||||||
{
|
{
|
||||||
vmessItem.configVersion = 2;
|
|
||||||
vmessItem.configType = (int)EConfigType.Shadowsocks;
|
vmessItem.configType = (int)EConfigType.Shadowsocks;
|
||||||
|
|
||||||
vmessItem.address = vmessItem.address.TrimEx();
|
vmessItem.address = vmessItem.address.TrimEx();
|
||||||
@@ -545,16 +551,13 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//添加
|
AddServerCommon(ref config, vmessItem);
|
||||||
config.vmess.Add(vmessItem);
|
|
||||||
if (config.vmess.Count == 1)
|
|
||||||
{
|
|
||||||
config.index = 0;
|
|
||||||
Global.reloadV2ray = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToJsonFile(config);
|
if (toFile)
|
||||||
|
{
|
||||||
|
ToJsonFile(config);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -566,9 +569,8 @@ namespace v2rayN.Handler
|
|||||||
/// <param name="vmessItem"></param>
|
/// <param name="vmessItem"></param>
|
||||||
/// <param name="index"></param>
|
/// <param name="index"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static int AddSocksServer(ref Config config, VmessItem vmessItem, int index)
|
public static int AddSocksServer(ref Config config, VmessItem vmessItem, int index, bool toFile = true)
|
||||||
{
|
{
|
||||||
vmessItem.configVersion = 2;
|
|
||||||
vmessItem.configType = (int)EConfigType.Socks;
|
vmessItem.configType = (int)EConfigType.Socks;
|
||||||
|
|
||||||
vmessItem.address = vmessItem.address.TrimEx();
|
vmessItem.address = vmessItem.address.TrimEx();
|
||||||
@@ -584,16 +586,13 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//添加
|
AddServerCommon(ref config, vmessItem);
|
||||||
config.vmess.Add(vmessItem);
|
|
||||||
if (config.vmess.Count == 1)
|
|
||||||
{
|
|
||||||
config.index = 0;
|
|
||||||
Global.reloadV2ray = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToJsonFile(config);
|
if (toFile)
|
||||||
|
{
|
||||||
|
ToJsonFile(config);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -606,15 +605,16 @@ namespace v2rayN.Handler
|
|||||||
/// <param name="vmessItem"></param>
|
/// <param name="vmessItem"></param>
|
||||||
/// <param name="index"></param>
|
/// <param name="index"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static int AddTrojanServer(ref Config config, VmessItem vmessItem, int index)
|
public static int AddTrojanServer(ref Config config, VmessItem vmessItem, int index, bool toFile = true)
|
||||||
{
|
{
|
||||||
vmessItem.configVersion = 2;
|
|
||||||
vmessItem.configType = (int)EConfigType.Trojan;
|
vmessItem.configType = (int)EConfigType.Trojan;
|
||||||
|
|
||||||
vmessItem.address = vmessItem.address.TrimEx();
|
vmessItem.address = vmessItem.address.TrimEx();
|
||||||
vmessItem.id = vmessItem.id.TrimEx();
|
vmessItem.id = vmessItem.id.TrimEx();
|
||||||
|
if (Utils.IsNullOrEmpty(vmessItem.streamSecurity))
|
||||||
vmessItem.streamSecurity = Global.StreamSecurity;
|
{
|
||||||
|
vmessItem.streamSecurity = Global.StreamSecurity;
|
||||||
|
}
|
||||||
if (Utils.IsNullOrEmpty(vmessItem.allowInsecure))
|
if (Utils.IsNullOrEmpty(vmessItem.allowInsecure))
|
||||||
{
|
{
|
||||||
vmessItem.allowInsecure = config.defAllowInsecure.ToString();
|
vmessItem.allowInsecure = config.defAllowInsecure.ToString();
|
||||||
@@ -631,16 +631,13 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//添加
|
AddServerCommon(ref config, vmessItem);
|
||||||
config.vmess.Add(vmessItem);
|
|
||||||
if (config.vmess.Count == 1)
|
|
||||||
{
|
|
||||||
config.index = 0;
|
|
||||||
Global.reloadV2ray = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToJsonFile(config);
|
if (toFile)
|
||||||
|
{
|
||||||
|
ToJsonFile(config);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -750,40 +747,41 @@ namespace v2rayN.Handler
|
|||||||
vmessItem.subid = subid;
|
vmessItem.subid = subid;
|
||||||
if (vmessItem.configType == (int)EConfigType.Vmess)
|
if (vmessItem.configType == (int)EConfigType.Vmess)
|
||||||
{
|
{
|
||||||
if (AddServer(ref config, vmessItem, -1) == 0)
|
if (AddServer(ref config, vmessItem, -1, false) == 0)
|
||||||
{
|
{
|
||||||
countServers++;
|
countServers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (vmessItem.configType == (int)EConfigType.Shadowsocks)
|
else if (vmessItem.configType == (int)EConfigType.Shadowsocks)
|
||||||
{
|
{
|
||||||
if (AddShadowsocksServer(ref config, vmessItem, -1) == 0)
|
if (AddShadowsocksServer(ref config, vmessItem, -1, false) == 0)
|
||||||
{
|
{
|
||||||
countServers++;
|
countServers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (vmessItem.configType == (int)EConfigType.Socks)
|
else if (vmessItem.configType == (int)EConfigType.Socks)
|
||||||
{
|
{
|
||||||
if (AddSocksServer(ref config, vmessItem, -1) == 0)
|
if (AddSocksServer(ref config, vmessItem, -1, false) == 0)
|
||||||
{
|
{
|
||||||
countServers++;
|
countServers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (vmessItem.configType == (int)EConfigType.Trojan)
|
else if (vmessItem.configType == (int)EConfigType.Trojan)
|
||||||
{
|
{
|
||||||
if (AddTrojanServer(ref config, vmessItem, -1) == 0)
|
if (AddTrojanServer(ref config, vmessItem, -1, false) == 0)
|
||||||
{
|
{
|
||||||
countServers++;
|
countServers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (vmessItem.configType == (int)EConfigType.VLESS)
|
else if (vmessItem.configType == (int)EConfigType.VLESS)
|
||||||
{
|
{
|
||||||
if (AddVlessServer(ref config, vmessItem, -1) == 0)
|
if (AddVlessServer(ref config, vmessItem, -1, false) == 0)
|
||||||
{
|
{
|
||||||
countServers++;
|
countServers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ToJsonFile(config);
|
||||||
return countServers;
|
return countServers;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -831,7 +829,7 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
if (Utils.IsNullOrEmpty(sub.id))
|
if (Utils.IsNullOrEmpty(sub.id))
|
||||||
{
|
{
|
||||||
sub.id = Utils.GetGUID();
|
sub.id = Utils.GetGUID(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -847,6 +845,7 @@ namespace v2rayN.Handler
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static int RemoveServerViaSubid(ref Config config, string subid)
|
public static int RemoveServerViaSubid(ref Config config, string subid)
|
||||||
{
|
{
|
||||||
|
var indexId = config.indexId();
|
||||||
if (Utils.IsNullOrEmpty(subid) || config.vmess.Count <= 0)
|
if (Utils.IsNullOrEmpty(subid) || config.vmess.Count <= 0)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
@@ -859,6 +858,8 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SetIndex(ref config, indexId);
|
||||||
|
|
||||||
ToJsonFile(config);
|
ToJsonFile(config);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -869,6 +870,7 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
var propertyName = string.Empty;
|
||||||
switch (name)
|
switch (name)
|
||||||
{
|
{
|
||||||
case EServerColName.configType:
|
case EServerColName.configType:
|
||||||
@@ -877,28 +879,30 @@ namespace v2rayN.Handler
|
|||||||
case EServerColName.port:
|
case EServerColName.port:
|
||||||
case EServerColName.security:
|
case EServerColName.security:
|
||||||
case EServerColName.network:
|
case EServerColName.network:
|
||||||
|
case EServerColName.streamSecurity:
|
||||||
case EServerColName.testResult:
|
case EServerColName.testResult:
|
||||||
|
propertyName = name.ToString();
|
||||||
|
break;
|
||||||
|
case EServerColName.subRemarks:
|
||||||
|
propertyName = "subid";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
string itemId = config.getItemId();
|
|
||||||
|
var indexId = config.indexId();
|
||||||
var items = config.vmess.AsQueryable();
|
var items = config.vmess.AsQueryable();
|
||||||
|
|
||||||
if (asc)
|
if (asc)
|
||||||
{
|
{
|
||||||
config.vmess = items.OrderBy(name.ToString()).ToList();
|
config.vmess = items.OrderBy(propertyName).ToList();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
config.vmess = items.OrderByDescending(name.ToString()).ToList();
|
config.vmess = items.OrderByDescending(propertyName).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
var index_ = config.vmess.FindIndex(it => it.getItemId() == itemId);
|
SetIndex(ref config, indexId);
|
||||||
if (index_ >= 0)
|
|
||||||
{
|
|
||||||
config.index = index_;
|
|
||||||
}
|
|
||||||
|
|
||||||
ToJsonFile(config);
|
ToJsonFile(config);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -911,9 +915,8 @@ namespace v2rayN.Handler
|
|||||||
/// <param name="vmessItem"></param>
|
/// <param name="vmessItem"></param>
|
||||||
/// <param name="index"></param>
|
/// <param name="index"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static int AddVlessServer(ref Config config, VmessItem vmessItem, int index)
|
public static int AddVlessServer(ref Config config, VmessItem vmessItem, int index, bool toFile = true)
|
||||||
{
|
{
|
||||||
vmessItem.configVersion = 2;
|
|
||||||
vmessItem.configType = (int)EConfigType.VLESS;
|
vmessItem.configType = (int)EConfigType.VLESS;
|
||||||
|
|
||||||
vmessItem.address = vmessItem.address.TrimEx();
|
vmessItem.address = vmessItem.address.TrimEx();
|
||||||
@@ -936,24 +939,103 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//添加
|
AddServerCommon(ref config, vmessItem);
|
||||||
if (Utils.IsNullOrEmpty(vmessItem.allowInsecure))
|
|
||||||
{
|
|
||||||
vmessItem.allowInsecure = config.defAllowInsecure.ToString();
|
|
||||||
}
|
|
||||||
config.vmess.Add(vmessItem);
|
|
||||||
if (config.vmess.Count == 1)
|
|
||||||
{
|
|
||||||
config.index = 0;
|
|
||||||
Global.reloadV2ray = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToJsonFile(config);
|
if (toFile)
|
||||||
|
{
|
||||||
|
ToJsonFile(config);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int DedupServerList(ref Config config)
|
||||||
|
{
|
||||||
|
var indexId = config.indexId();
|
||||||
|
|
||||||
|
List<Mode.VmessItem> source = config.vmess;
|
||||||
|
bool keepOlder = config.keepOlderDedupl;
|
||||||
|
|
||||||
|
List<Mode.VmessItem> list = new List<Mode.VmessItem>();
|
||||||
|
if (!keepOlder) source.Reverse(); // Remove the early items first
|
||||||
|
|
||||||
|
bool _isAdded(Mode.VmessItem o, Mode.VmessItem n)
|
||||||
|
{
|
||||||
|
return o.configVersion == n.configVersion &&
|
||||||
|
o.configType == n.configType &&
|
||||||
|
o.address == n.address &&
|
||||||
|
o.port == n.port &&
|
||||||
|
o.id == n.id &&
|
||||||
|
o.alterId == n.alterId &&
|
||||||
|
o.security == n.security &&
|
||||||
|
o.network == n.network &&
|
||||||
|
o.headerType == n.headerType &&
|
||||||
|
o.requestHost == n.requestHost &&
|
||||||
|
o.path == n.path &&
|
||||||
|
o.streamSecurity == n.streamSecurity;
|
||||||
|
// skip (will remove) different remarks
|
||||||
|
}
|
||||||
|
foreach (Mode.VmessItem item in source)
|
||||||
|
{
|
||||||
|
if (!list.Exists(i => _isAdded(i, item)))
|
||||||
|
{
|
||||||
|
list.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!keepOlder) list.Reverse();
|
||||||
|
config.vmess = list;
|
||||||
|
|
||||||
|
SetIndex(ref config, indexId);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int AddServerCommon(ref Config config, VmessItem vmessItem)
|
||||||
|
{
|
||||||
|
vmessItem.indexId = Utils.GetGUID(false);
|
||||||
|
vmessItem.configVersion = 2;
|
||||||
|
if (Utils.IsNullOrEmpty(vmessItem.allowInsecure))
|
||||||
|
{
|
||||||
|
vmessItem.allowInsecure = config.defAllowInsecure.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
config.vmess.Add(vmessItem);
|
||||||
|
if (config.vmess.Count == 1)
|
||||||
|
{
|
||||||
|
config.index = 0;
|
||||||
|
Global.reloadV2ray = true;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int SetIndex(ref Config config, string indexId)
|
||||||
|
{
|
||||||
|
var index_ = config.FindIndexId(indexId);
|
||||||
|
|
||||||
|
if (config.index == index_)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (index_ >= 0)
|
||||||
|
{
|
||||||
|
config.index = index_;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (config.vmess.Count > 0)
|
||||||
|
{
|
||||||
|
config.index = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
config.index = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Global.reloadV2ray = true;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region UI
|
#region UI
|
||||||
@@ -1033,6 +1115,13 @@ namespace v2rayN.Handler
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
config.routings.Add(item);
|
config.routings.Add(item);
|
||||||
|
int indexLocked = config.routings.FindIndex(it => it.locked == true);
|
||||||
|
if (indexLocked != -1)
|
||||||
|
{
|
||||||
|
var itemLocked = Utils.DeepCopy(config.routings[indexLocked]);
|
||||||
|
config.routings.RemoveAt(indexLocked);
|
||||||
|
config.routings.Add(itemLocked);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ToJsonFile(config);
|
ToJsonFile(config);
|
||||||
|
|
||||||
@@ -1057,6 +1146,10 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (routingItem.rules == null)
|
||||||
|
{
|
||||||
|
routingItem.rules = new List<RulesItem>();
|
||||||
|
}
|
||||||
if (blReplace)
|
if (blReplace)
|
||||||
{
|
{
|
||||||
routingItem.rules.Clear();
|
routingItem.rules.Clear();
|
||||||
@@ -1164,29 +1257,48 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
config.routings = new List<RoutingItem>();
|
config.routings = new List<RoutingItem>();
|
||||||
}
|
}
|
||||||
if (config.routings.Count <= 0)
|
|
||||||
|
if (config.routings.Count(it => it.locked != true) <= 0)
|
||||||
{
|
{
|
||||||
//Bypass the mainland
|
//Bypass the mainland
|
||||||
var item2 = new RoutingItem();
|
var item2 = new RoutingItem()
|
||||||
item2.remarks = "绕过大陆(Whitelist)";
|
{
|
||||||
item2.url = string.Empty;
|
remarks = "绕过大陆(Whitelist)",
|
||||||
item2.rules = new List<RulesItem>();
|
url = string.Empty,
|
||||||
string result2 = Utils.GetEmbedText(Global.CustomRoutingFileName + "white");
|
};
|
||||||
AddBatchRoutingRules(ref item2, result2);
|
AddBatchRoutingRules(ref item2, Utils.GetEmbedText(Global.CustomRoutingFileName + "white"));
|
||||||
config.routings.Add(item2);
|
config.routings.Add(item2);
|
||||||
|
|
||||||
|
//Blacklist
|
||||||
|
var item3 = new RoutingItem()
|
||||||
|
{
|
||||||
|
remarks = "黑名单(Blacklist)",
|
||||||
|
url = string.Empty,
|
||||||
|
};
|
||||||
|
AddBatchRoutingRules(ref item3, Utils.GetEmbedText(Global.CustomRoutingFileName + "black"));
|
||||||
|
config.routings.Add(item3);
|
||||||
|
|
||||||
|
//Global
|
||||||
|
var item1 = new RoutingItem()
|
||||||
|
{
|
||||||
|
remarks = "全局(Global)",
|
||||||
|
url = string.Empty,
|
||||||
|
};
|
||||||
|
AddBatchRoutingRules(ref item1, Utils.GetEmbedText(Global.CustomRoutingFileName + "global"));
|
||||||
|
config.routings.Add(item1);
|
||||||
|
|
||||||
config.routingIndex = 0;
|
config.routingIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetLockedRoutingItem(ref config) == null)
|
if (GetLockedRoutingItem(ref config) == null)
|
||||||
{
|
{
|
||||||
var item1 = new RoutingItem();
|
var item1 = new RoutingItem()
|
||||||
item1.remarks = "locked";
|
{
|
||||||
item1.url = string.Empty;
|
remarks = "locked",
|
||||||
item1.rules = new List<RulesItem>();
|
url = string.Empty,
|
||||||
item1.locked = true;
|
locked = true,
|
||||||
string result1 = Utils.GetEmbedText(Global.CustomRoutingFileName + "locked");
|
};
|
||||||
AddBatchRoutingRules(ref item1, result1);
|
AddBatchRoutingRules(ref item1, Utils.GetEmbedText(Global.CustomRoutingFileName + "locked"));
|
||||||
config.routings.Add(item1);
|
config.routings.Add(item1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,7 @@
|
|||||||
using Newtonsoft.Json;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Http;
|
|
||||||
using System.Text;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
using v2rayN.Mode;
|
|
||||||
using v2rayN.Properties;
|
|
||||||
|
|
||||||
namespace v2rayN.Handler
|
namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
@@ -19,19 +10,10 @@ namespace v2rayN.Handler
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
class DownloadHandle
|
class DownloadHandle
|
||||||
{
|
{
|
||||||
public event EventHandler<ResultEventArgs> AbsoluteCompleted;
|
|
||||||
|
|
||||||
public event EventHandler<ResultEventArgs> UpdateCompleted;
|
public event EventHandler<ResultEventArgs> UpdateCompleted;
|
||||||
|
|
||||||
public event ErrorEventHandler Error;
|
public event ErrorEventHandler Error;
|
||||||
|
|
||||||
public string DownloadFileName
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return "v2ray-windows.zip";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class ResultEventArgs : EventArgs
|
public class ResultEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
@@ -50,154 +32,6 @@ namespace v2rayN.Handler
|
|||||||
private DateTime totalDatetime = new DateTime();
|
private DateTime totalDatetime = new DateTime();
|
||||||
private int DownloadTimeout = -1;
|
private int DownloadTimeout = -1;
|
||||||
|
|
||||||
#region Check for updates
|
|
||||||
|
|
||||||
private readonly string nLatestUrl = Global.NUrl + "/latest";
|
|
||||||
private const string nUrl = Global.NUrl + "/download/{0}/v2rayN.zip";
|
|
||||||
private readonly string v2flyCoreLatestUrl = Global.v2flyCoreUrl + "/latest";
|
|
||||||
private const string v2flyCoreUrl = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip";
|
|
||||||
private readonly string xrayCoreLatestUrl = Global.xrayCoreUrl + "/latest";
|
|
||||||
private const string xrayCoreUrl = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip";
|
|
||||||
|
|
||||||
public async void CheckUpdateAsync(string type)
|
|
||||||
{
|
|
||||||
Utils.SetSecurityProtocol();
|
|
||||||
WebRequestHandler webRequestHandler = new WebRequestHandler
|
|
||||||
{
|
|
||||||
AllowAutoRedirect = false
|
|
||||||
};
|
|
||||||
HttpClient httpClient = new HttpClient(webRequestHandler);
|
|
||||||
|
|
||||||
string url;
|
|
||||||
if (type == "v2fly")
|
|
||||||
{
|
|
||||||
url = v2flyCoreLatestUrl;
|
|
||||||
}
|
|
||||||
else if (type == "xray")
|
|
||||||
{
|
|
||||||
url = xrayCoreLatestUrl;
|
|
||||||
}
|
|
||||||
else if (type == "v2rayN")
|
|
||||||
{
|
|
||||||
url = nLatestUrl;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new ArgumentException("Type");
|
|
||||||
}
|
|
||||||
HttpResponseMessage response = await httpClient.GetAsync(url);
|
|
||||||
if (response.StatusCode.ToString() == "Redirect")
|
|
||||||
{
|
|
||||||
responseHandler(type, response.Headers.Location.ToString());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Utils.SaveLog("StatusCode error: " + url);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取V2RayCore版本
|
|
||||||
/// </summary>
|
|
||||||
public string getCoreVersion(string type)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var core = string.Empty;
|
|
||||||
var match = string.Empty;
|
|
||||||
if (type == "v2fly")
|
|
||||||
{
|
|
||||||
core = "v2ray.exe";
|
|
||||||
match = "V2Ray";
|
|
||||||
}
|
|
||||||
else if (type == "xray")
|
|
||||||
{
|
|
||||||
core = "xray.exe";
|
|
||||||
match = "Xray";
|
|
||||||
}
|
|
||||||
string filePath = Utils.GetPath(core);
|
|
||||||
if (!File.Exists(filePath))
|
|
||||||
{
|
|
||||||
string msg = string.Format(UIRes.I18N("NotFoundCore"), @"");
|
|
||||||
//ShowMsg(true, msg);
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
Process p = new Process();
|
|
||||||
p.StartInfo.FileName = filePath;
|
|
||||||
p.StartInfo.Arguments = "-version";
|
|
||||||
p.StartInfo.WorkingDirectory = Utils.StartupPath();
|
|
||||||
p.StartInfo.UseShellExecute = false;
|
|
||||||
p.StartInfo.RedirectStandardOutput = true;
|
|
||||||
p.StartInfo.CreateNoWindow = true;
|
|
||||||
p.StartInfo.StandardOutputEncoding = Encoding.UTF8;
|
|
||||||
p.Start();
|
|
||||||
p.WaitForExit(5000);
|
|
||||||
string echo = p.StandardOutput.ReadToEnd();
|
|
||||||
string version = Regex.Match(echo, $"{match} ([0-9.]+) \\(").Groups[1].Value;
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void responseHandler(string type, string redirectUrl)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string version = redirectUrl.Substring(redirectUrl.LastIndexOf("/", StringComparison.Ordinal) + 1);
|
|
||||||
|
|
||||||
string curVersion;
|
|
||||||
string message;
|
|
||||||
string url;
|
|
||||||
if (type == "v2fly")
|
|
||||||
{
|
|
||||||
curVersion = "v" + getCoreVersion(type);
|
|
||||||
message = string.Format(UIRes.I18N("IsLatestCore"), curVersion);
|
|
||||||
string osBit = Environment.Is64BitProcess ? "64" : "32";
|
|
||||||
url = string.Format(v2flyCoreUrl, version, osBit);
|
|
||||||
}
|
|
||||||
else if (type == "xray")
|
|
||||||
{
|
|
||||||
curVersion = "v" + getCoreVersion(type);
|
|
||||||
message = string.Format(UIRes.I18N("IsLatestCore"), curVersion);
|
|
||||||
string osBit = Environment.Is64BitProcess ? "64" : "32";
|
|
||||||
url = string.Format(xrayCoreUrl, version, osBit);
|
|
||||||
}
|
|
||||||
else if (type == "v2rayN")
|
|
||||||
{
|
|
||||||
curVersion = FileVersionInfo.GetVersionInfo(Utils.GetExePath()).FileVersion.ToString();
|
|
||||||
message = string.Format(UIRes.I18N("IsLatestN"), curVersion);
|
|
||||||
url = string.Format(nUrl, version);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new ArgumentException("Type");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (curVersion == version)
|
|
||||||
{
|
|
||||||
AbsoluteCompleted?.Invoke(this, new ResultEventArgs(false, message));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
AbsoluteCompleted?.Invoke(this, new ResultEventArgs(true, url));
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
|
|
||||||
Error?.Invoke(this, new ErrorEventArgs(ex));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Download
|
|
||||||
|
|
||||||
public WebClientEx DownloadFileAsync(string url, WebProxy webProxy, int downloadTimeout)
|
public WebClientEx DownloadFileAsync(string url, WebProxy webProxy, int downloadTimeout)
|
||||||
{
|
{
|
||||||
WebClientEx ws = new WebClientEx();
|
WebClientEx ws = new WebClientEx();
|
||||||
@@ -218,7 +52,7 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
ws.DownloadFileCompleted += ws_DownloadFileCompleted;
|
ws.DownloadFileCompleted += ws_DownloadFileCompleted;
|
||||||
ws.DownloadProgressChanged += ws_DownloadProgressChanged;
|
ws.DownloadProgressChanged += ws_DownloadProgressChanged;
|
||||||
ws.DownloadFileAsync(new Uri(url), Utils.GetPath(DownloadFileName));
|
ws.DownloadFileAsync(new Uri(url), Utils.GetPath(Utils.GetDownloadFileName(url)));
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -274,7 +108,7 @@ namespace v2rayN.Handler
|
|||||||
if (e.Error == null
|
if (e.Error == null
|
||||||
|| Utils.IsNullOrEmpty(e.Error.ToString()))
|
|| Utils.IsNullOrEmpty(e.Error.ToString()))
|
||||||
{
|
{
|
||||||
|
((WebClientEx)sender).Dispose();
|
||||||
TimeSpan ts = (DateTime.Now - totalDatetime);
|
TimeSpan ts = (DateTime.Now - totalDatetime);
|
||||||
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.0"));
|
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.0"));
|
||||||
UpdateCompleted(this, new ResultEventArgs(true, speed.PadLeft(8, ' ')));
|
UpdateCompleted(this, new ResultEventArgs(true, speed.PadLeft(8, ' ')));
|
||||||
@@ -297,7 +131,7 @@ namespace v2rayN.Handler
|
|||||||
/// DownloadString
|
/// DownloadString
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="url"></param>
|
/// <param name="url"></param>
|
||||||
public void WebDownloadString(string url)
|
public void WebDownloadString(string url, string userAgent)
|
||||||
{
|
{
|
||||||
string source = string.Empty;
|
string source = string.Empty;
|
||||||
try
|
try
|
||||||
@@ -305,6 +139,11 @@ namespace v2rayN.Handler
|
|||||||
Utils.SetSecurityProtocol();
|
Utils.SetSecurityProtocol();
|
||||||
|
|
||||||
WebClientEx ws = new WebClientEx();
|
WebClientEx ws = new WebClientEx();
|
||||||
|
if (!Utils.IsNullOrEmpty(userAgent))
|
||||||
|
{
|
||||||
|
ws.Headers.Add("user-agent", userAgent);
|
||||||
|
}
|
||||||
|
|
||||||
ws.DownloadStringCompleted += Ws_DownloadStringCompleted;
|
ws.DownloadStringCompleted += Ws_DownloadStringCompleted;
|
||||||
ws.DownloadStringAsync(new Uri(url));
|
ws.DownloadStringAsync(new Uri(url));
|
||||||
}
|
}
|
||||||
@@ -354,7 +193,35 @@ namespace v2rayN.Handler
|
|||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
public WebClientEx DownloadDataAsync(string url, WebProxy webProxy, int downloadTimeout)
|
||||||
|
{
|
||||||
|
WebClientEx ws = new WebClientEx();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Utils.SetSecurityProtocol();
|
||||||
|
UpdateCompleted?.Invoke(this, new ResultEventArgs(false, UIRes.I18N("Downloading")));
|
||||||
|
|
||||||
|
progressPercentage = -1;
|
||||||
|
totalBytesToReceive = 0;
|
||||||
|
|
||||||
|
DownloadTimeout = downloadTimeout;
|
||||||
|
if (webProxy != null)
|
||||||
|
{
|
||||||
|
ws.Proxy = webProxy;
|
||||||
|
}
|
||||||
|
|
||||||
|
ws.DownloadProgressChanged += ws_DownloadProgressChanged;
|
||||||
|
ws.DownloadDataCompleted += ws_DownloadFileCompleted;
|
||||||
|
ws.DownloadDataAsync(new Uri(url));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
|
||||||
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
|
}
|
||||||
|
return ws;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
@@ -9,7 +12,7 @@ namespace v2rayN.Handler
|
|||||||
class MainFormHandler
|
class MainFormHandler
|
||||||
{
|
{
|
||||||
private static MainFormHandler instance;
|
private static MainFormHandler instance;
|
||||||
Action<bool, string> updateUI;
|
Action<bool, string> _updateUI;
|
||||||
|
|
||||||
//private DownloadHandle downloadHandle2;
|
//private DownloadHandle downloadHandle2;
|
||||||
//private Config _config;
|
//private Config _config;
|
||||||
@@ -48,9 +51,23 @@ namespace v2rayN.Handler
|
|||||||
Graphics graphics = Graphics.FromImage(bitmap);
|
Graphics graphics = Graphics.FromImage(bitmap);
|
||||||
SolidBrush drawBrush = new SolidBrush(color);
|
SolidBrush drawBrush = new SolidBrush(color);
|
||||||
|
|
||||||
graphics.FillEllipse(drawBrush, new Rectangle(0, 0, width, height));
|
var customIcon = false;
|
||||||
int zoom = 16;
|
if (config.enableRoutingAdvanced)
|
||||||
graphics.DrawImage(new Bitmap(Properties.Resources.notify, width - zoom, width - zoom), zoom / 2, zoom / 2);
|
{
|
||||||
|
var item = config.routings[config.routingIndex];
|
||||||
|
if (!Utils.IsNullOrEmpty(item.customIcon) && File.Exists(item.customIcon))
|
||||||
|
{
|
||||||
|
graphics.FillRectangle(drawBrush, new Rectangle(0, 0, width, height));
|
||||||
|
graphics.DrawImage(new Bitmap(item.customIcon), 0, 0);
|
||||||
|
customIcon = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!customIcon)
|
||||||
|
{
|
||||||
|
graphics.FillEllipse(drawBrush, new Rectangle(0, 0, width, height));
|
||||||
|
int zoom = 16;
|
||||||
|
graphics.DrawImage(new Bitmap(Properties.Resources.notify, width - zoom, width - zoom), zoom / 2, zoom / 2);
|
||||||
|
}
|
||||||
|
|
||||||
Icon createdIcon = Icon.FromHandle(bitmap.GetHicon());
|
Icon createdIcon = Icon.FromHandle(bitmap.GetHicon());
|
||||||
|
|
||||||
@@ -166,76 +183,83 @@ namespace v2rayN.Handler
|
|||||||
return counter;
|
return counter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void BackupGuiNConfig(Config config, bool auto = false)
|
||||||
public void UpdateSubscriptionProcess(Config config, Action<bool, string> update)
|
|
||||||
{
|
{
|
||||||
updateUI = update;
|
string fileName = $"guiNConfig_{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff")}.json";
|
||||||
|
if (auto)
|
||||||
updateUI(false, UIRes.I18N("MsgUpdateSubscriptionStart"));
|
{
|
||||||
|
fileName = Utils.GetTempPath(fileName);
|
||||||
if (config.subItem == null || config.subItem.Count <= 0)
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SaveFileDialog fileDialog = new SaveFileDialog
|
||||||
|
{
|
||||||
|
FileName = fileName,
|
||||||
|
Filter = "guiNConfig|*.json",
|
||||||
|
FilterIndex = 2,
|
||||||
|
RestoreDirectory = true
|
||||||
|
};
|
||||||
|
if (fileDialog.ShowDialog() != DialogResult.OK)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fileName = fileDialog.FileName;
|
||||||
|
}
|
||||||
|
if (Utils.IsNullOrEmpty(fileName))
|
||||||
{
|
{
|
||||||
updateUI(false, UIRes.I18N("MsgNoValidSubscription"));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
var ret = Utils.ToJsonFile(config, fileName);
|
||||||
for (int k = 1; k <= config.subItem.Count; k++)
|
if (!auto)
|
||||||
{
|
{
|
||||||
string id = config.subItem[k - 1].id.TrimEx();
|
if (ret == 0)
|
||||||
string url = config.subItem[k - 1].url.TrimEx();
|
|
||||||
string hashCode = $"{k}->";
|
|
||||||
if (config.subItem[k - 1].enabled == false)
|
|
||||||
{
|
{
|
||||||
continue;
|
|
||||||
|
UI.Show(UIRes.I18N("OperationSuccess"));
|
||||||
}
|
}
|
||||||
if (Utils.IsNullOrEmpty(id) || Utils.IsNullOrEmpty(url))
|
else
|
||||||
{
|
{
|
||||||
updateUI(false, $"{hashCode}{UIRes.I18N("MsgNoValidSubscription")}");
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DownloadHandle downloadHandle3 = new DownloadHandle();
|
|
||||||
downloadHandle3.UpdateCompleted += (sender2, args) =>
|
|
||||||
{
|
|
||||||
if (args.Success)
|
|
||||||
{
|
|
||||||
updateUI(false, $"{hashCode}{UIRes.I18N("MsgGetSubscriptionSuccessfully")}");
|
|
||||||
string result = Utils.Base64Decode(args.Msg);
|
|
||||||
if (Utils.IsNullOrEmpty(result))
|
|
||||||
{
|
|
||||||
updateUI(false, $"{hashCode}{UIRes.I18N("MsgSubscriptionDecodingFailed")}");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ConfigHandler.RemoveServerViaSubid(ref config, id);
|
|
||||||
updateUI(false, $"{hashCode}{UIRes.I18N("MsgClearSubscription")}");
|
|
||||||
// RefreshServers();
|
|
||||||
int ret = MainFormHandler.Instance.AddBatchServers(config, result, id);
|
|
||||||
if (ret > 0)
|
|
||||||
{
|
|
||||||
// RefreshServers();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
updateUI(false, $"{hashCode}{UIRes.I18N("MsgFailedImportSubscription")}");
|
|
||||||
}
|
|
||||||
updateUI(true, $"{hashCode}{UIRes.I18N("MsgUpdateSubscriptionEnd")}");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
updateUI(false, args.Msg);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
downloadHandle3.Error += (sender2, args) =>
|
|
||||||
{
|
|
||||||
updateUI(false, args.GetException().Message);
|
|
||||||
};
|
|
||||||
|
|
||||||
downloadHandle3.WebDownloadString(url);
|
|
||||||
updateUI(false, $"{hashCode}{UIRes.I18N("MsgStartGettingSubscriptions")}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateTask(Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_updateUI = update;
|
||||||
|
Task.Run(() => UpdateTaskRun(config));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateTaskRun(Config config)
|
||||||
|
{
|
||||||
|
var updateHandle = new UpdateHandle();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
Utils.SaveLog("UpdateTaskRun");
|
||||||
|
Thread.Sleep(60000);
|
||||||
|
if (config.autoUpdateInterval <= 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateHandle.UpdateGeoFile("geosite", config, (bool success, string msg) =>
|
||||||
|
{
|
||||||
|
_updateUI(false, msg);
|
||||||
|
if (success)
|
||||||
|
Utils.SaveLog("geosite" + msg);
|
||||||
|
});
|
||||||
|
|
||||||
|
Thread.Sleep(60000);
|
||||||
|
|
||||||
|
updateHandle.UpdateGeoFile("geoip", config, (bool success, string msg) =>
|
||||||
|
{
|
||||||
|
_updateUI(false, msg);
|
||||||
|
if (success)
|
||||||
|
Utils.SaveLog("geoip" + msg);
|
||||||
|
});
|
||||||
|
|
||||||
|
Thread.Sleep(1000 * 3600 * config.autoUpdateInterval);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -30,197 +30,25 @@ namespace v2rayN.Handler
|
|||||||
string url = string.Empty;
|
string url = string.Empty;
|
||||||
|
|
||||||
VmessItem item = config.vmess[index];
|
VmessItem item = config.vmess[index];
|
||||||
if (item.configType == (int)EConfigType.Vmess)
|
switch (item.configType)
|
||||||
{
|
|
||||||
VmessQRCode vmessQRCode = new VmessQRCode
|
|
||||||
{
|
|
||||||
v = item.configVersion.ToString(),
|
|
||||||
ps = item.remarks.TrimEx(), //备注也许很长 ;
|
|
||||||
add = item.address,
|
|
||||||
port = item.port.ToString(),
|
|
||||||
id = item.id,
|
|
||||||
aid = item.alterId.ToString(),
|
|
||||||
scy = item.security,
|
|
||||||
net = item.network,
|
|
||||||
type = item.headerType,
|
|
||||||
host = item.requestHost,
|
|
||||||
path = item.path,
|
|
||||||
tls = item.streamSecurity,
|
|
||||||
sni = item.sni
|
|
||||||
};
|
|
||||||
|
|
||||||
url = Utils.ToJson(vmessQRCode);
|
|
||||||
url = Utils.Base64Encode(url);
|
|
||||||
url = string.Format("{0}{1}", Global.vmessProtocol, url);
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (item.configType == (int)EConfigType.Shadowsocks)
|
|
||||||
{
|
|
||||||
string remark = string.Empty;
|
|
||||||
if (!Utils.IsNullOrEmpty(item.remarks))
|
|
||||||
{
|
|
||||||
remark = "#" + Utils.UrlEncode(item.remarks);
|
|
||||||
}
|
|
||||||
url = string.Format("{0}:{1}@{2}:{3}",
|
|
||||||
item.security,
|
|
||||||
item.id,
|
|
||||||
item.address,
|
|
||||||
item.port);
|
|
||||||
url = Utils.Base64Encode(url);
|
|
||||||
url = string.Format("{0}{1}{2}", Global.ssProtocol, url, remark);
|
|
||||||
}
|
|
||||||
else if (item.configType == (int)EConfigType.Socks)
|
|
||||||
{
|
|
||||||
string remark = string.Empty;
|
|
||||||
if (!Utils.IsNullOrEmpty(item.remarks))
|
|
||||||
{
|
|
||||||
remark = "#" + Utils.UrlEncode(item.remarks);
|
|
||||||
}
|
|
||||||
url = string.Format("{0}:{1}@{2}:{3}",
|
|
||||||
item.security,
|
|
||||||
item.id,
|
|
||||||
item.address,
|
|
||||||
item.port);
|
|
||||||
url = Utils.Base64Encode(url);
|
|
||||||
url = string.Format("{0}{1}{2}", Global.socksProtocol, url, remark);
|
|
||||||
}
|
|
||||||
else if (item.configType == (int)EConfigType.Trojan)
|
|
||||||
{
|
|
||||||
string remark = string.Empty;
|
|
||||||
if (!Utils.IsNullOrEmpty(item.remarks))
|
|
||||||
{
|
|
||||||
remark = "#" + Utils.UrlEncode(item.remarks);
|
|
||||||
}
|
|
||||||
string query = string.Empty;
|
|
||||||
if (!Utils.IsNullOrEmpty(item.sni))
|
|
||||||
{
|
|
||||||
query = string.Format("?sni={0}", Utils.UrlEncode(item.sni));
|
|
||||||
}
|
|
||||||
url = string.Format("{0}@{1}:{2}",
|
|
||||||
item.id,
|
|
||||||
GetIpv6(item.address),
|
|
||||||
item.port);
|
|
||||||
url = string.Format("{0}{1}{2}{3}", Global.trojanProtocol, url, query, remark);
|
|
||||||
}
|
|
||||||
else if (item.configType == (int)EConfigType.VLESS)
|
|
||||||
{
|
|
||||||
string remark = string.Empty;
|
|
||||||
if (!Utils.IsNullOrEmpty(item.remarks))
|
|
||||||
{
|
|
||||||
remark = "#" + Utils.UrlEncode(item.remarks);
|
|
||||||
}
|
|
||||||
var dicQuery = new Dictionary<string, string>();
|
|
||||||
if (!Utils.IsNullOrEmpty(item.flow))
|
|
||||||
{
|
|
||||||
dicQuery.Add("flow", item.flow);
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(item.security))
|
|
||||||
{
|
|
||||||
dicQuery.Add("encryption", item.security);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dicQuery.Add("encryption", "none");
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(item.streamSecurity))
|
|
||||||
{
|
|
||||||
dicQuery.Add("security", item.streamSecurity);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dicQuery.Add("security", "none");
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(item.sni))
|
|
||||||
{
|
|
||||||
dicQuery.Add("sni", item.sni);
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(item.network))
|
|
||||||
{
|
|
||||||
dicQuery.Add("type", item.network);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dicQuery.Add("type", "tcp");
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (item.network)
|
|
||||||
{
|
|
||||||
case "tcp":
|
|
||||||
if (!Utils.IsNullOrEmpty(item.headerType))
|
|
||||||
{
|
|
||||||
dicQuery.Add("headerType", item.headerType);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dicQuery.Add("headerType", "none");
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(item.requestHost))
|
|
||||||
{
|
|
||||||
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "kcp":
|
|
||||||
if (!Utils.IsNullOrEmpty(item.headerType))
|
|
||||||
{
|
|
||||||
dicQuery.Add("headerType", item.headerType);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dicQuery.Add("headerType", "none");
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(item.path))
|
|
||||||
{
|
|
||||||
dicQuery.Add("seed", Utils.UrlEncode(item.path));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "ws":
|
|
||||||
if (!Utils.IsNullOrEmpty(item.requestHost))
|
|
||||||
{
|
|
||||||
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(item.path))
|
|
||||||
{
|
|
||||||
dicQuery.Add("path", Utils.UrlEncode(item.path));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "http":
|
|
||||||
case "h2":
|
|
||||||
dicQuery["type"] = "http";
|
|
||||||
if (!Utils.IsNullOrEmpty(item.requestHost))
|
|
||||||
{
|
|
||||||
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(item.path))
|
|
||||||
{
|
|
||||||
dicQuery.Add("path", Utils.UrlEncode(item.path));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "quic":
|
|
||||||
if (!Utils.IsNullOrEmpty(item.headerType))
|
|
||||||
{
|
|
||||||
dicQuery.Add("headerType", item.headerType);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dicQuery.Add("headerType", "none");
|
|
||||||
}
|
|
||||||
dicQuery.Add("quicSecurity", Utils.UrlEncode(item.requestHost));
|
|
||||||
dicQuery.Add("key", Utils.UrlEncode(item.path));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
string query = "?" + string.Join("&", dicQuery.Select(x => x.Key + "=" + x.Value).ToArray());
|
|
||||||
|
|
||||||
url = string.Format("{0}@{1}:{2}",
|
|
||||||
item.id,
|
|
||||||
GetIpv6(item.address),
|
|
||||||
item.port);
|
|
||||||
url = string.Format("{0}{1}{2}{3}", Global.vlessProtocol, url, query, remark);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
case (int)EConfigType.Vmess:
|
||||||
|
url = ShareVmess(item);
|
||||||
|
break;
|
||||||
|
case (int)EConfigType.Shadowsocks:
|
||||||
|
url = ShareShadowsocks(item);
|
||||||
|
break;
|
||||||
|
case (int)EConfigType.Socks:
|
||||||
|
url = ShareSocks(item);
|
||||||
|
break;
|
||||||
|
case (int)EConfigType.Trojan:
|
||||||
|
url = ShareTrojan(item);
|
||||||
|
break;
|
||||||
|
case (int)EConfigType.VLESS:
|
||||||
|
url = ShareVLESS(item);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
@@ -230,10 +58,246 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string ShareVmess(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
|
||||||
|
VmessQRCode vmessQRCode = new VmessQRCode
|
||||||
|
{
|
||||||
|
v = item.configVersion.ToString(),
|
||||||
|
ps = item.remarks.TrimEx(), //备注也许很长 ;
|
||||||
|
add = item.address,
|
||||||
|
port = item.port.ToString(),
|
||||||
|
id = item.id,
|
||||||
|
aid = "0",
|
||||||
|
scy = item.security,
|
||||||
|
net = item.network,
|
||||||
|
type = item.headerType,
|
||||||
|
host = item.requestHost,
|
||||||
|
path = item.path,
|
||||||
|
tls = item.streamSecurity,
|
||||||
|
sni = item.sni,
|
||||||
|
alpn = Utils.List2String(item.alpn)
|
||||||
|
};
|
||||||
|
|
||||||
|
url = Utils.ToJson(vmessQRCode);
|
||||||
|
url = Utils.Base64Encode(url);
|
||||||
|
url = string.Format("{0}{1}", Global.vmessProtocol, url);
|
||||||
|
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareShadowsocks(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
|
||||||
|
string remark = string.Empty;
|
||||||
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
|
{
|
||||||
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
|
}
|
||||||
|
//url = string.Format("{0}:{1}@{2}:{3}",
|
||||||
|
// item.security,
|
||||||
|
// item.id,
|
||||||
|
// item.address,
|
||||||
|
// item.port);
|
||||||
|
//url = Utils.Base64Encode(url);
|
||||||
|
//new Sip002
|
||||||
|
var pw = Utils.Base64Encode($"{item.security}:{item.id}");
|
||||||
|
url = $"{pw}@{GetIpv6(item.address)}:{ item.port}";
|
||||||
|
url = string.Format("{0}{1}{2}", Global.ssProtocol, url, remark);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareSocks(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
string remark = string.Empty;
|
||||||
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
|
{
|
||||||
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
|
}
|
||||||
|
//url = string.Format("{0}:{1}@{2}:{3}",
|
||||||
|
// item.security,
|
||||||
|
// item.id,
|
||||||
|
// item.address,
|
||||||
|
// item.port);
|
||||||
|
//url = Utils.Base64Encode(url);
|
||||||
|
//new
|
||||||
|
var pw = Utils.Base64Encode($"{item.security}:{item.id}");
|
||||||
|
url = $"{pw}@{GetIpv6(item.address)}:{ item.port}";
|
||||||
|
url = string.Format("{0}{1}{2}", Global.socksProtocol, url, remark);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareTrojan(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
string remark = string.Empty;
|
||||||
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
|
{
|
||||||
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
|
}
|
||||||
|
var dicQuery = new Dictionary<string, string>();
|
||||||
|
GetStdTransport(item, null, ref dicQuery);
|
||||||
|
string query = "?" + string.Join("&", dicQuery.Select(x => x.Key + "=" + x.Value).ToArray());
|
||||||
|
|
||||||
|
url = string.Format("{0}@{1}:{2}",
|
||||||
|
item.id,
|
||||||
|
GetIpv6(item.address),
|
||||||
|
item.port);
|
||||||
|
url = string.Format("{0}{1}{2}{3}", Global.trojanProtocol, url, query, remark);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareVLESS(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
string remark = string.Empty;
|
||||||
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
|
{
|
||||||
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
|
}
|
||||||
|
var dicQuery = new Dictionary<string, string>();
|
||||||
|
if (!Utils.IsNullOrEmpty(item.security))
|
||||||
|
{
|
||||||
|
dicQuery.Add("encryption", item.security);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("encryption", "none");
|
||||||
|
}
|
||||||
|
GetStdTransport(item, "none", ref dicQuery);
|
||||||
|
string query = "?" + string.Join("&", dicQuery.Select(x => x.Key + "=" + x.Value).ToArray());
|
||||||
|
|
||||||
|
url = string.Format("{0}@{1}:{2}",
|
||||||
|
item.id,
|
||||||
|
GetIpv6(item.address),
|
||||||
|
item.port);
|
||||||
|
url = string.Format("{0}{1}{2}{3}", Global.vlessProtocol, url, query, remark);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
private static string GetIpv6(string address)
|
private static string GetIpv6(string address)
|
||||||
{
|
{
|
||||||
return Utils.IsIpv6(address) ? $"[{address}]" : address;
|
return Utils.IsIpv6(address) ? $"[{address}]" : address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static int GetStdTransport(VmessItem item, string securityDef, ref Dictionary<string, string> dicQuery)
|
||||||
|
{
|
||||||
|
if (!Utils.IsNullOrEmpty(item.flow))
|
||||||
|
{
|
||||||
|
dicQuery.Add("flow", item.flow);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Utils.IsNullOrEmpty(item.streamSecurity))
|
||||||
|
{
|
||||||
|
dicQuery.Add("security", item.streamSecurity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (securityDef != null)
|
||||||
|
{
|
||||||
|
dicQuery.Add("security", securityDef);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.sni))
|
||||||
|
{
|
||||||
|
dicQuery.Add("sni", item.sni);
|
||||||
|
}
|
||||||
|
if (item.alpn != null && item.alpn.Count > 0)
|
||||||
|
{
|
||||||
|
dicQuery.Add("alpn", Utils.UrlEncode(Utils.List2String(item.alpn)));
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.network))
|
||||||
|
{
|
||||||
|
dicQuery.Add("type", item.network);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("type", "tcp");
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (item.network)
|
||||||
|
{
|
||||||
|
case "tcp":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.headerType))
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", item.headerType);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", "none");
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
|
{
|
||||||
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "kcp":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.headerType))
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", item.headerType);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", "none");
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
|
{
|
||||||
|
dicQuery.Add("seed", Utils.UrlEncode(item.path));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "ws":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
|
{
|
||||||
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
|
{
|
||||||
|
dicQuery.Add("path", Utils.UrlEncode(item.path));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "http":
|
||||||
|
case "h2":
|
||||||
|
dicQuery["type"] = "http";
|
||||||
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
|
{
|
||||||
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
|
{
|
||||||
|
dicQuery.Add("path", Utils.UrlEncode(item.path));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "quic":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.headerType))
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", item.headerType);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", "none");
|
||||||
|
}
|
||||||
|
dicQuery.Add("quicSecurity", Utils.UrlEncode(item.requestHost));
|
||||||
|
dicQuery.Add("key", Utils.UrlEncode(item.path));
|
||||||
|
break;
|
||||||
|
case "grpc":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
|
{
|
||||||
|
dicQuery.Add("serviceName", Utils.UrlEncode(item.path));
|
||||||
|
if (item.headerType == Global.GrpcgunMode || item.headerType == Global.GrpcmultiMode)
|
||||||
|
{
|
||||||
|
dicQuery.Add("mode", Utils.UrlEncode(item.headerType));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ImportShareUrl
|
#region ImportShareUrl
|
||||||
@@ -269,50 +333,7 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vmessItem.configType = (int)EConfigType.Vmess;
|
vmessItem = ResolveVmess(result, out msg);
|
||||||
result = result.Substring(Global.vmessProtocol.Length);
|
|
||||||
result = Utils.Base64Decode(result);
|
|
||||||
|
|
||||||
//转成Json
|
|
||||||
VmessQRCode vmessQRCode = Utils.FromJson<VmessQRCode>(result);
|
|
||||||
if (vmessQRCode == null)
|
|
||||||
{
|
|
||||||
msg = UIRes.I18N("FailedConversionConfiguration");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
vmessItem.network = Global.DefaultNetwork;
|
|
||||||
vmessItem.headerType = Global.None;
|
|
||||||
|
|
||||||
vmessItem.configVersion = Utils.ToInt(vmessQRCode.v);
|
|
||||||
vmessItem.remarks = Utils.ToString(vmessQRCode.ps);
|
|
||||||
vmessItem.address = Utils.ToString(vmessQRCode.add);
|
|
||||||
vmessItem.port = Utils.ToInt(vmessQRCode.port);
|
|
||||||
vmessItem.id = Utils.ToString(vmessQRCode.id);
|
|
||||||
vmessItem.alterId = Utils.ToInt(vmessQRCode.aid);
|
|
||||||
vmessItem.security = Utils.ToString(vmessQRCode.scy);
|
|
||||||
|
|
||||||
if (!Utils.IsNullOrEmpty(vmessQRCode.scy))
|
|
||||||
{
|
|
||||||
vmessItem.security = vmessQRCode.scy;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
vmessItem.security = Global.DefaultSecurity;
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(vmessQRCode.net))
|
|
||||||
{
|
|
||||||
vmessItem.network = vmessQRCode.net;
|
|
||||||
}
|
|
||||||
if (!Utils.IsNullOrEmpty(vmessQRCode.type))
|
|
||||||
{
|
|
||||||
vmessItem.headerType = vmessQRCode.type;
|
|
||||||
}
|
|
||||||
|
|
||||||
vmessItem.requestHost = Utils.ToString(vmessQRCode.host);
|
|
||||||
vmessItem.path = Utils.ToString(vmessQRCode.path);
|
|
||||||
vmessItem.streamSecurity = Utils.ToString(vmessQRCode.tls);
|
|
||||||
vmessItem.sni = Utils.ToString(vmessQRCode.sni);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfigHandler.UpgradeServerVersion(ref vmessItem);
|
ConfigHandler.UpgradeServerVersion(ref vmessItem);
|
||||||
@@ -341,69 +362,27 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
||||||
|
|
||||||
vmessItem.configType = (int)EConfigType.Socks;
|
vmessItem = ResolveSocksNew(result);
|
||||||
result = result.Substring(Global.socksProtocol.Length);
|
if (vmessItem == null)
|
||||||
//remark
|
|
||||||
int indexRemark = result.IndexOf("#");
|
|
||||||
if (indexRemark > 0)
|
|
||||||
{
|
{
|
||||||
try
|
vmessItem = ResolveSocks(result);
|
||||||
{
|
|
||||||
vmessItem.remarks = Utils.UrlDecode(result.Substring(indexRemark + 1, result.Length - indexRemark - 1));
|
|
||||||
}
|
|
||||||
catch { }
|
|
||||||
result = result.Substring(0, indexRemark);
|
|
||||||
}
|
}
|
||||||
//part decode
|
if (vmessItem == null)
|
||||||
int indexS = result.IndexOf("@");
|
|
||||||
if (indexS > 0)
|
|
||||||
{
|
{
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
else
|
if (vmessItem.address.Length == 0 || vmessItem.port == 0)
|
||||||
{
|
{
|
||||||
result = Utils.Base64Decode(result);
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
string[] arr1 = result.Split('@');
|
vmessItem.configType = (int)EConfigType.Socks;
|
||||||
if (arr1.Length != 2)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
string[] arr21 = arr1[0].Split(':');
|
|
||||||
//string[] arr22 = arr1[1].Split(':');
|
|
||||||
int indexPort = arr1[1].LastIndexOf(":");
|
|
||||||
if (arr21.Length != 2 || indexPort < 0)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
vmessItem.address = arr1[1].Substring(0, indexPort);
|
|
||||||
vmessItem.port = Utils.ToInt(arr1[1].Substring(indexPort + 1, arr1[1].Length - (indexPort + 1)));
|
|
||||||
vmessItem.security = arr21[0];
|
|
||||||
vmessItem.id = arr21[1];
|
|
||||||
}
|
}
|
||||||
else if (result.StartsWith(Global.trojanProtocol))
|
else if (result.StartsWith(Global.trojanProtocol))
|
||||||
{
|
{
|
||||||
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
||||||
|
|
||||||
vmessItem.configType = (int)EConfigType.Trojan;
|
vmessItem = ResolveTrojan(result);
|
||||||
|
|
||||||
Uri uri = new Uri(result);
|
|
||||||
vmessItem.address = uri.IdnHost;
|
|
||||||
vmessItem.port = uri.Port;
|
|
||||||
vmessItem.id = uri.UserInfo;
|
|
||||||
|
|
||||||
var qurery = HttpUtility.ParseQueryString(uri.Query);
|
|
||||||
vmessItem.sni = qurery["sni"] ?? "";
|
|
||||||
|
|
||||||
var remarks = uri.Fragment.Replace("#", "");
|
|
||||||
if (Utils.IsNullOrEmpty(remarks))
|
|
||||||
{
|
|
||||||
vmessItem.remarks = "NONE";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
vmessItem.remarks = Utils.UrlDecode(remarks);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (result.StartsWith(Global.vlessProtocol))
|
else if (result.StartsWith(Global.vlessProtocol))
|
||||||
{
|
{
|
||||||
@@ -426,6 +405,58 @@ namespace v2rayN.Handler
|
|||||||
return vmessItem;
|
return vmessItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveVmess(string result, out string msg)
|
||||||
|
{
|
||||||
|
msg = string.Empty;
|
||||||
|
VmessItem vmessItem = new VmessItem();
|
||||||
|
|
||||||
|
vmessItem.configType = (int)EConfigType.Vmess;
|
||||||
|
result = result.Substring(Global.vmessProtocol.Length);
|
||||||
|
result = Utils.Base64Decode(result);
|
||||||
|
|
||||||
|
//转成Json
|
||||||
|
VmessQRCode vmessQRCode = Utils.FromJson<VmessQRCode>(result);
|
||||||
|
if (vmessQRCode == null)
|
||||||
|
{
|
||||||
|
msg = UIRes.I18N("FailedConversionConfiguration");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
vmessItem.network = Global.DefaultNetwork;
|
||||||
|
vmessItem.headerType = Global.None;
|
||||||
|
|
||||||
|
vmessItem.configVersion = Utils.ToInt(vmessQRCode.v);
|
||||||
|
vmessItem.remarks = Utils.ToString(vmessQRCode.ps);
|
||||||
|
vmessItem.address = Utils.ToString(vmessQRCode.add);
|
||||||
|
vmessItem.port = Utils.ToInt(vmessQRCode.port);
|
||||||
|
vmessItem.id = Utils.ToString(vmessQRCode.id);
|
||||||
|
vmessItem.security = Utils.ToString(vmessQRCode.scy);
|
||||||
|
|
||||||
|
if (!Utils.IsNullOrEmpty(vmessQRCode.scy))
|
||||||
|
{
|
||||||
|
vmessItem.security = vmessQRCode.scy;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vmessItem.security = Global.DefaultSecurity;
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(vmessQRCode.net))
|
||||||
|
{
|
||||||
|
vmessItem.network = vmessQRCode.net;
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(vmessQRCode.type))
|
||||||
|
{
|
||||||
|
vmessItem.headerType = vmessQRCode.type;
|
||||||
|
}
|
||||||
|
|
||||||
|
vmessItem.requestHost = Utils.ToString(vmessQRCode.host);
|
||||||
|
vmessItem.path = Utils.ToString(vmessQRCode.path);
|
||||||
|
vmessItem.streamSecurity = Utils.ToString(vmessQRCode.tls);
|
||||||
|
vmessItem.sni = Utils.ToString(vmessQRCode.sni);
|
||||||
|
vmessItem.alpn = Utils.String2List(vmessQRCode.alpn);
|
||||||
|
|
||||||
|
return vmessItem;
|
||||||
|
}
|
||||||
|
|
||||||
private static VmessItem ResolveVmess4Kitsunebi(string result)
|
private static VmessItem ResolveVmess4Kitsunebi(string result)
|
||||||
{
|
{
|
||||||
@@ -461,98 +492,10 @@ namespace v2rayN.Handler
|
|||||||
vmessItem.network = Global.DefaultNetwork;
|
vmessItem.network = Global.DefaultNetwork;
|
||||||
vmessItem.headerType = Global.None;
|
vmessItem.headerType = Global.None;
|
||||||
vmessItem.remarks = "Alien";
|
vmessItem.remarks = "Alien";
|
||||||
vmessItem.alterId = 0;
|
|
||||||
|
|
||||||
return vmessItem;
|
return vmessItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static VmessItem ResolveSip002(string result)
|
|
||||||
{
|
|
||||||
Uri parsedUrl;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
parsedUrl = new Uri(result);
|
|
||||||
}
|
|
||||||
catch (UriFormatException)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
VmessItem server = new VmessItem
|
|
||||||
{
|
|
||||||
remarks = parsedUrl.GetComponents(UriComponents.Fragment, UriFormat.Unescaped),
|
|
||||||
address = parsedUrl.IdnHost,
|
|
||||||
port = parsedUrl.Port,
|
|
||||||
};
|
|
||||||
|
|
||||||
// parse base64 UserInfo
|
|
||||||
string rawUserInfo = parsedUrl.GetComponents(UriComponents.UserInfo, UriFormat.Unescaped);
|
|
||||||
string base64 = rawUserInfo.Replace('-', '+').Replace('_', '/'); // Web-safe base64 to normal base64
|
|
||||||
string userInfo;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
userInfo = Encoding.UTF8.GetString(Convert.FromBase64String(
|
|
||||||
base64.PadRight(base64.Length + (4 - base64.Length % 4) % 4, '=')));
|
|
||||||
}
|
|
||||||
catch (FormatException)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
string[] userInfoParts = userInfo.Split(new char[] { ':' }, 2);
|
|
||||||
if (userInfoParts.Length != 2)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
server.security = userInfoParts[0];
|
|
||||||
server.id = userInfoParts[1];
|
|
||||||
|
|
||||||
NameValueCollection queryParameters = HttpUtility.ParseQueryString(parsedUrl.Query);
|
|
||||||
if (queryParameters["plugin"] != null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return server;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static readonly Regex UrlFinder = new Regex(@"ss://(?<base64>[A-Za-z0-9+-/=_]+)(?:#(?<tag>\S+))?", RegexOptions.IgnoreCase);
|
|
||||||
private static readonly Regex DetailsParser = new Regex(@"^((?<method>.+?):(?<password>.*)@(?<hostname>.+?):(?<port>\d+?))$", RegexOptions.IgnoreCase);
|
|
||||||
|
|
||||||
private static VmessItem ResolveSSLegacy(string result)
|
|
||||||
{
|
|
||||||
var match = UrlFinder.Match(result);
|
|
||||||
if (!match.Success)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
VmessItem server = new VmessItem();
|
|
||||||
var base64 = match.Groups["base64"].Value.TrimEnd('/');
|
|
||||||
var tag = match.Groups["tag"].Value;
|
|
||||||
if (!Utils.IsNullOrEmpty(tag))
|
|
||||||
{
|
|
||||||
server.remarks = Utils.UrlDecode(tag);
|
|
||||||
}
|
|
||||||
Match details;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
details = DetailsParser.Match(Encoding.UTF8.GetString(Convert.FromBase64String(
|
|
||||||
base64.PadRight(base64.Length + (4 - base64.Length % 4) % 4, '='))));
|
|
||||||
}
|
|
||||||
catch (FormatException)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (!details.Success)
|
|
||||||
return null;
|
|
||||||
server.security = details.Groups["method"].Value;
|
|
||||||
server.id = details.Groups["password"].Value;
|
|
||||||
server.address = details.Groups["hostname"].Value;
|
|
||||||
server.port = int.Parse(details.Groups["port"].Value);
|
|
||||||
return server;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static readonly Regex StdVmessUserInfo = new Regex(
|
|
||||||
@"^(?<network>[a-z]+)(\+(?<streamSecurity>[a-z]+))?:(?<id>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})-(?<alterId>[0-9]+)$");
|
|
||||||
|
|
||||||
private static VmessItem ResolveStdVmess(string result)
|
private static VmessItem ResolveStdVmess(string result)
|
||||||
{
|
{
|
||||||
VmessItem i = new VmessItem
|
VmessItem i = new VmessItem
|
||||||
@@ -565,18 +508,13 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
i.address = u.IdnHost;
|
i.address = u.IdnHost;
|
||||||
i.port = u.Port;
|
i.port = u.Port;
|
||||||
i.remarks = u.GetComponents(UriComponents.Fragment, UriFormat.Unescaped);
|
i.remarks = Utils.UrlDecode(u.GetComponents(UriComponents.Fragment, UriFormat.Unescaped));
|
||||||
var q = HttpUtility.ParseQueryString(u.Query);
|
var q = HttpUtility.ParseQueryString(u.Query);
|
||||||
|
|
||||||
var m = StdVmessUserInfo.Match(u.UserInfo);
|
var m = StdVmessUserInfo.Match(u.UserInfo);
|
||||||
if (!m.Success) return null;
|
if (!m.Success) return null;
|
||||||
|
|
||||||
i.id = m.Groups["id"].Value;
|
i.id = m.Groups["id"].Value;
|
||||||
if (!int.TryParse(m.Groups["alterId"].Value, out int aid))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
i.alterId = aid;
|
|
||||||
|
|
||||||
if (m.Groups["streamSecurity"].Success)
|
if (m.Groups["streamSecurity"].Success)
|
||||||
{
|
{
|
||||||
@@ -639,6 +577,178 @@ namespace v2rayN.Handler
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveSip002(string result)
|
||||||
|
{
|
||||||
|
Uri parsedUrl;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
parsedUrl = new Uri(result);
|
||||||
|
}
|
||||||
|
catch (UriFormatException)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
VmessItem server = new VmessItem
|
||||||
|
{
|
||||||
|
remarks = Utils.UrlDecode(parsedUrl.GetComponents(UriComponents.Fragment, UriFormat.Unescaped)),
|
||||||
|
address = parsedUrl.IdnHost,
|
||||||
|
port = parsedUrl.Port,
|
||||||
|
};
|
||||||
|
|
||||||
|
// parse base64 UserInfo
|
||||||
|
string rawUserInfo = parsedUrl.GetComponents(UriComponents.UserInfo, UriFormat.Unescaped);
|
||||||
|
string userInfo = Utils.Base64Decode(rawUserInfo);
|
||||||
|
string[] userInfoParts = userInfo.Split(new char[] { ':' }, 2);
|
||||||
|
if (userInfoParts.Length != 2)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
server.security = userInfoParts[0];
|
||||||
|
server.id = userInfoParts[1];
|
||||||
|
|
||||||
|
NameValueCollection queryParameters = HttpUtility.ParseQueryString(parsedUrl.Query);
|
||||||
|
if (queryParameters["plugin"] != null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return server;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly Regex UrlFinder = new Regex(@"ss://(?<base64>[A-Za-z0-9+-/=_]+)(?:#(?<tag>\S+))?", RegexOptions.IgnoreCase);
|
||||||
|
private static readonly Regex DetailsParser = new Regex(@"^((?<method>.+?):(?<password>.*)@(?<hostname>.+?):(?<port>\d+?))$", RegexOptions.IgnoreCase);
|
||||||
|
|
||||||
|
private static VmessItem ResolveSSLegacy(string result)
|
||||||
|
{
|
||||||
|
var match = UrlFinder.Match(result);
|
||||||
|
if (!match.Success)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
VmessItem server = new VmessItem();
|
||||||
|
var base64 = match.Groups["base64"].Value.TrimEnd('/');
|
||||||
|
var tag = match.Groups["tag"].Value;
|
||||||
|
if (!Utils.IsNullOrEmpty(tag))
|
||||||
|
{
|
||||||
|
server.remarks = Utils.UrlDecode(tag);
|
||||||
|
}
|
||||||
|
Match details;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
details = DetailsParser.Match(Utils.Base64Decode(base64));
|
||||||
|
}
|
||||||
|
catch (FormatException)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (!details.Success)
|
||||||
|
return null;
|
||||||
|
server.security = details.Groups["method"].Value;
|
||||||
|
server.id = details.Groups["password"].Value;
|
||||||
|
server.address = details.Groups["hostname"].Value;
|
||||||
|
server.port = int.Parse(details.Groups["port"].Value);
|
||||||
|
return server;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static readonly Regex StdVmessUserInfo = new Regex(
|
||||||
|
@"^(?<network>[a-z]+)(\+(?<streamSecurity>[a-z]+))?:(?<id>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$");
|
||||||
|
|
||||||
|
private static VmessItem ResolveSocks(string result)
|
||||||
|
{
|
||||||
|
VmessItem vmessItem = new VmessItem();
|
||||||
|
vmessItem.configType = (int)EConfigType.Socks;
|
||||||
|
result = result.Substring(Global.socksProtocol.Length);
|
||||||
|
//remark
|
||||||
|
int indexRemark = result.IndexOf("#");
|
||||||
|
if (indexRemark > 0)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
vmessItem.remarks = Utils.UrlDecode(result.Substring(indexRemark + 1, result.Length - indexRemark - 1));
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
result = result.Substring(0, indexRemark);
|
||||||
|
}
|
||||||
|
//part decode
|
||||||
|
int indexS = result.IndexOf("@");
|
||||||
|
if (indexS > 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = Utils.Base64Decode(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
string[] arr1 = result.Split('@');
|
||||||
|
if (arr1.Length != 2)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
string[] arr21 = arr1[0].Split(':');
|
||||||
|
//string[] arr22 = arr1[1].Split(':');
|
||||||
|
int indexPort = arr1[1].LastIndexOf(":");
|
||||||
|
if (arr21.Length != 2 || indexPort < 0)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
vmessItem.address = arr1[1].Substring(0, indexPort);
|
||||||
|
vmessItem.port = Utils.ToInt(arr1[1].Substring(indexPort + 1, arr1[1].Length - (indexPort + 1)));
|
||||||
|
vmessItem.security = arr21[0];
|
||||||
|
vmessItem.id = arr21[1];
|
||||||
|
|
||||||
|
return vmessItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveSocksNew(string result)
|
||||||
|
{
|
||||||
|
Uri parsedUrl;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
parsedUrl = new Uri(result);
|
||||||
|
}
|
||||||
|
catch (UriFormatException)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
VmessItem server = new VmessItem
|
||||||
|
{
|
||||||
|
remarks = Utils.UrlDecode(parsedUrl.GetComponents(UriComponents.Fragment, UriFormat.Unescaped)),
|
||||||
|
address = parsedUrl.IdnHost,
|
||||||
|
port = parsedUrl.Port,
|
||||||
|
};
|
||||||
|
|
||||||
|
// parse base64 UserInfo
|
||||||
|
string rawUserInfo = parsedUrl.GetComponents(UriComponents.UserInfo, UriFormat.Unescaped);
|
||||||
|
string userInfo = Utils.Base64Decode(rawUserInfo);
|
||||||
|
string[] userInfoParts = userInfo.Split(new char[] { ':' }, 2);
|
||||||
|
if (userInfoParts.Length == 2)
|
||||||
|
{
|
||||||
|
server.security = userInfoParts[0];
|
||||||
|
server.id = userInfoParts[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return server;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveTrojan(string result)
|
||||||
|
{
|
||||||
|
VmessItem item = new VmessItem
|
||||||
|
{
|
||||||
|
configType = (int)EConfigType.Trojan
|
||||||
|
};
|
||||||
|
|
||||||
|
Uri url = new Uri(result);
|
||||||
|
|
||||||
|
item.address = url.IdnHost;
|
||||||
|
item.port = url.Port;
|
||||||
|
item.remarks = Utils.UrlDecode(url.GetComponents(UriComponents.Fragment, UriFormat.Unescaped));
|
||||||
|
item.id = url.UserInfo;
|
||||||
|
|
||||||
|
var query = HttpUtility.ParseQueryString(url.Query);
|
||||||
|
ResolveStdTransport(query, ref item);
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
private static VmessItem ResolveStdVLESS(string result)
|
private static VmessItem ResolveStdVLESS(string result)
|
||||||
{
|
{
|
||||||
VmessItem item = new VmessItem
|
VmessItem item = new VmessItem
|
||||||
@@ -651,15 +761,23 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
item.address = url.IdnHost;
|
item.address = url.IdnHost;
|
||||||
item.port = url.Port;
|
item.port = url.Port;
|
||||||
item.remarks = url.GetComponents(UriComponents.Fragment, UriFormat.Unescaped);
|
item.remarks = Utils.UrlDecode(url.GetComponents(UriComponents.Fragment, UriFormat.Unescaped));
|
||||||
item.id = url.UserInfo;
|
item.id = url.UserInfo;
|
||||||
|
|
||||||
var query = HttpUtility.ParseQueryString(url.Query);
|
var query = HttpUtility.ParseQueryString(url.Query);
|
||||||
|
|
||||||
item.flow = query["flow"] ?? "";
|
|
||||||
item.security = query["encryption"] ?? "none";
|
item.security = query["encryption"] ?? "none";
|
||||||
item.streamSecurity = query["security"] ?? "";
|
item.streamSecurity = query["security"] ?? "";
|
||||||
|
ResolveStdTransport(query, ref item);
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int ResolveStdTransport(NameValueCollection query, ref VmessItem item)
|
||||||
|
{
|
||||||
|
item.flow = query["flow"] ?? "";
|
||||||
|
item.streamSecurity = query["security"] ?? "";
|
||||||
item.sni = query["sni"] ?? "";
|
item.sni = query["sni"] ?? "";
|
||||||
|
item.alpn = Utils.String2List(Utils.UrlDecode(query["alpn"] ?? ""));
|
||||||
item.network = query["type"] ?? "tcp";
|
item.network = query["type"] ?? "tcp";
|
||||||
switch (item.network)
|
switch (item.network)
|
||||||
{
|
{
|
||||||
@@ -690,12 +808,14 @@ namespace v2rayN.Handler
|
|||||||
item.requestHost = query["quicSecurity"] ?? "none";
|
item.requestHost = query["quicSecurity"] ?? "none";
|
||||||
item.path = Utils.UrlDecode(query["key"] ?? "");
|
item.path = Utils.UrlDecode(query["key"] ?? "");
|
||||||
break;
|
break;
|
||||||
|
case "grpc":
|
||||||
|
item.path = Utils.UrlDecode(query["serviceName"] ?? "");
|
||||||
|
item.headerType = Utils.UrlDecode(query["mode"] ?? Global.GrpcgunMode);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return null;
|
break;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
return item;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -13,17 +13,34 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
private Config _config;
|
private Config _config;
|
||||||
private V2rayHandler _v2rayHandler;
|
private V2rayHandler _v2rayHandler;
|
||||||
private List<int> _selecteds;
|
private List<ServerTestItem> _selecteds;
|
||||||
Action<int, string> _updateFunc;
|
Action<int, string> _updateFunc;
|
||||||
|
|
||||||
|
public SpeedtestHandler(ref Config config)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
}
|
||||||
|
|
||||||
public SpeedtestHandler(ref Config config, ref V2rayHandler v2rayHandler, List<int> selecteds, string actionType, Action<int, string> update)
|
public SpeedtestHandler(ref Config config, ref V2rayHandler v2rayHandler, List<int> selecteds, string actionType, Action<int, string> update)
|
||||||
{
|
{
|
||||||
_config = config;
|
_config = config;
|
||||||
_v2rayHandler = v2rayHandler;
|
_v2rayHandler = v2rayHandler;
|
||||||
_selecteds = Utils.DeepCopy(selecteds);
|
//_selecteds = Utils.DeepCopy(selecteds);
|
||||||
_updateFunc = update;
|
_updateFunc = update;
|
||||||
|
|
||||||
|
_selecteds = new List<ServerTestItem>();
|
||||||
|
foreach (var it in selecteds)
|
||||||
|
{
|
||||||
|
_selecteds.Add(new ServerTestItem()
|
||||||
|
{
|
||||||
|
selected = it,
|
||||||
|
indexId = config.vmess[it].indexId,
|
||||||
|
address = config.vmess[it].address,
|
||||||
|
port = config.vmess[it].port,
|
||||||
|
configType = config.vmess[it].configType
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (actionType == "ping")
|
if (actionType == "ping")
|
||||||
{
|
{
|
||||||
Task.Run(() => RunPing());
|
Task.Run(() => RunPing());
|
||||||
@@ -42,19 +59,19 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RunPingSub(Action<int> updateFun)
|
private void RunPingSub(Action<ServerTestItem> updateFun)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
foreach (int index in _selecteds)
|
foreach (var it in _selecteds)
|
||||||
{
|
{
|
||||||
if (_config.vmess[index].configType == (int)EConfigType.Custom)
|
if (it.configType == (int)EConfigType.Custom)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
updateFun(index);
|
updateFun(it);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -73,18 +90,22 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
private void RunPing()
|
private void RunPing()
|
||||||
{
|
{
|
||||||
RunPingSub((int index) =>
|
RunPingSub((ServerTestItem it) =>
|
||||||
{
|
{
|
||||||
long time = Utils.Ping(_config.vmess[index].address);
|
long time = Utils.Ping(it.address);
|
||||||
|
var index = _config.FindIndexId(it.indexId);
|
||||||
|
if (index < 0) return;
|
||||||
_updateFunc(index, FormatOut(time, "ms"));
|
_updateFunc(index, FormatOut(time, "ms"));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RunTcping()
|
private void RunTcping()
|
||||||
{
|
{
|
||||||
RunPingSub((int index) =>
|
RunPingSub((ServerTestItem it) =>
|
||||||
{
|
{
|
||||||
int time = GetTcpingTime(_config.vmess[index].address, _config.vmess[index].port);
|
int time = GetTcpingTime(it.address, it.port);
|
||||||
|
var index = _config.FindIndexId(it.indexId);
|
||||||
|
if (index < 0) return;
|
||||||
_updateFunc(index, FormatOut(time, "ms"));
|
_updateFunc(index, FormatOut(time, "ms"));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -97,13 +118,21 @@ namespace v2rayN.Handler
|
|||||||
string msg = string.Empty;
|
string msg = string.Empty;
|
||||||
|
|
||||||
pid = _v2rayHandler.LoadV2rayConfigString(_config, _selecteds);
|
pid = _v2rayHandler.LoadV2rayConfigString(_config, _selecteds);
|
||||||
|
if (pid < 0)
|
||||||
|
{
|
||||||
|
_updateFunc(_selecteds[0].selected, UIRes.I18N("OperationFailed"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//Thread.Sleep(5000);
|
//Thread.Sleep(5000);
|
||||||
int httpPort = _config.GetLocalPort("speedtest");
|
|
||||||
List<Task> tasks = new List<Task>();
|
List<Task> tasks = new List<Task>();
|
||||||
foreach (int itemIndex in _selecteds)
|
foreach (var it in _selecteds)
|
||||||
{
|
{
|
||||||
if (_config.vmess[itemIndex].configType == (int)EConfigType.Custom)
|
if (it.configType == (int)EConfigType.Custom)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (it.port <= 0)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -111,11 +140,13 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort + itemIndex);
|
WebProxy webProxy = new WebProxy(Global.Loopback, it.port);
|
||||||
int responseTime = -1;
|
int responseTime = -1;
|
||||||
string status = GetRealPingTime(_config.speedPingTestUrl, webProxy, out responseTime);
|
string status = GetRealPingTime(_config.constItem.speedPingTestUrl, webProxy, out responseTime);
|
||||||
string output = Utils.IsNullOrEmpty(status) ? FormatOut(responseTime, "ms") : FormatOut(status, "");
|
string output = Utils.IsNullOrEmpty(status) ? FormatOut(responseTime, "ms") : status;
|
||||||
_updateFunc(itemIndex, output);
|
var index = _config.FindIndexId(it.indexId);
|
||||||
|
if (index < 0) return;
|
||||||
|
_updateFunc(index, output);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -148,7 +179,7 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
||||||
int responseTime = -1;
|
int responseTime = -1;
|
||||||
string status = GetRealPingTime(Global.AvailabilityTestUrl, webProxy, out responseTime);
|
string status = GetRealPingTime(Global.SpeedPingTestUrl, webProxy, out responseTime);
|
||||||
bool noError = Utils.IsNullOrEmpty(status);
|
bool noError = Utils.IsNullOrEmpty(status);
|
||||||
return noError ? responseTime : -1;
|
return noError ? responseTime : -1;
|
||||||
}
|
}
|
||||||
@@ -169,7 +200,7 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
private void RunSpeedTest()
|
private void RunSpeedTest()
|
||||||
{
|
{
|
||||||
int testCounter = 0;
|
string testIndexId = string.Empty;
|
||||||
int pid = -1;
|
int pid = -1;
|
||||||
|
|
||||||
if (_config.vmess.Count <= 0)
|
if (_config.vmess.Count <= 0)
|
||||||
@@ -178,39 +209,48 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
|
|
||||||
pid = _v2rayHandler.LoadV2rayConfigString(_config, _selecteds);
|
pid = _v2rayHandler.LoadV2rayConfigString(_config, _selecteds);
|
||||||
|
if (pid < 0)
|
||||||
|
{
|
||||||
|
_updateFunc(_selecteds[0].selected, UIRes.I18N("OperationFailed"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
string url = _config.speedTestUrl;
|
string url = _config.constItem.speedTestUrl;
|
||||||
DownloadHandle downloadHandle2 = new DownloadHandle();
|
DownloadHandle downloadHandle2 = new DownloadHandle();
|
||||||
downloadHandle2.UpdateCompleted += (sender2, args) =>
|
downloadHandle2.UpdateCompleted += (sender2, args) =>
|
||||||
{
|
{
|
||||||
_updateFunc(testCounter, args.Msg);
|
var index = _config.FindIndexId(testIndexId);
|
||||||
|
if (index < 0) return;
|
||||||
|
_updateFunc(index, args.Msg);
|
||||||
};
|
};
|
||||||
downloadHandle2.Error += (sender2, args) =>
|
downloadHandle2.Error += (sender2, args) =>
|
||||||
{
|
{
|
||||||
_updateFunc(testCounter, args.GetException().Message);
|
var index = _config.FindIndexId(testIndexId);
|
||||||
|
if (index < 0) return;
|
||||||
|
_updateFunc(index, args.GetException().Message);
|
||||||
};
|
};
|
||||||
|
|
||||||
var timeout = 10;
|
var timeout = 10;
|
||||||
foreach (int itemIndex in _selecteds)
|
foreach (var it in _selecteds)
|
||||||
{
|
{
|
||||||
if (itemIndex >= _config.vmess.Count)
|
if (it.configType == (int)EConfigType.Custom)
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_config.vmess[itemIndex].configType == (int)EConfigType.Custom)
|
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
testCounter = itemIndex;
|
if (it.port <= 0)
|
||||||
int httpPort = _config.GetLocalPort("speedtest");
|
{
|
||||||
|
continue;
|
||||||
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort + itemIndex);
|
}
|
||||||
var ws = downloadHandle2.DownloadFileAsync(url, webProxy, timeout - 2);
|
testIndexId = it.indexId;
|
||||||
|
if (_config.FindIndexId(it.indexId) < 0) continue;
|
||||||
|
|
||||||
|
WebProxy webProxy = new WebProxy(Global.Loopback, it.port);
|
||||||
|
var ws = downloadHandle2.DownloadDataAsync(url, webProxy, timeout - 2);
|
||||||
|
|
||||||
Thread.Sleep(1000 * timeout);
|
Thread.Sleep(1000 * timeout);
|
||||||
|
|
||||||
ws.CancelAsync();
|
ws.CancelAsync();
|
||||||
|
ws.Dispose();
|
||||||
|
|
||||||
Thread.Sleep(1000 * 2);
|
Thread.Sleep(1000 * 2);
|
||||||
}
|
}
|
||||||
|
|||||||
475
v2rayN/v2rayN/Handler/UpdateHandle.cs
Normal file
475
v2rayN/v2rayN/Handler/UpdateHandle.cs
Normal file
@@ -0,0 +1,475 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Handler
|
||||||
|
{
|
||||||
|
class UpdateHandle
|
||||||
|
{
|
||||||
|
Action<bool, string> _updateFunc;
|
||||||
|
private Config _config;
|
||||||
|
|
||||||
|
public event EventHandler<ResultEventArgs> AbsoluteCompleted;
|
||||||
|
|
||||||
|
public class ResultEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public bool Success;
|
||||||
|
public string Msg;
|
||||||
|
|
||||||
|
public ResultEventArgs(bool success, string msg)
|
||||||
|
{
|
||||||
|
this.Success = success;
|
||||||
|
this.Msg = msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly string nLatestUrl = Global.NUrl + "/latest";
|
||||||
|
private const string nUrl = Global.NUrl + "/download/{0}/v2rayN.zip";
|
||||||
|
private readonly string v2flyCoreLatestUrl = Global.v2flyCoreUrl + "/latest";
|
||||||
|
private const string v2flyCoreUrl = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip";
|
||||||
|
private readonly string xrayCoreLatestUrl = Global.xrayCoreUrl + "/latest";
|
||||||
|
private const string xrayCoreUrl = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip";
|
||||||
|
private const string geoUrl = "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/{0}.dat";
|
||||||
|
|
||||||
|
public void CheckUpdateGuiN(Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
_updateFunc = update;
|
||||||
|
var url = string.Empty;
|
||||||
|
|
||||||
|
DownloadHandle downloadHandle = null;
|
||||||
|
if (downloadHandle == null)
|
||||||
|
{
|
||||||
|
downloadHandle = new DownloadHandle();
|
||||||
|
|
||||||
|
downloadHandle.UpdateCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgDownloadV2rayCoreSuccessfully"));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string fileName = Utils.GetPath(Utils.GetDownloadFileName(url));
|
||||||
|
fileName = Utils.UrlEncode(fileName);
|
||||||
|
Process process = new Process
|
||||||
|
{
|
||||||
|
StartInfo = new ProcessStartInfo
|
||||||
|
{
|
||||||
|
FileName = "v2rayUpgrade.exe",
|
||||||
|
Arguments = "\"" + fileName + "\"",
|
||||||
|
WorkingDirectory = Utils.StartupPath()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
process.Start();
|
||||||
|
if (process.Id > 0)
|
||||||
|
{
|
||||||
|
_updateFunc(true, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
downloadHandle.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.GetException().Message);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
AbsoluteCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgParsingSuccessfully"), "v2rayN"));
|
||||||
|
|
||||||
|
url = args.Msg;
|
||||||
|
askToDownload(downloadHandle, url, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgStartUpdating"), "v2rayN"));
|
||||||
|
CheckUpdateAsync("v2rayN");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void CheckUpdateCore(string type, Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
_updateFunc = update;
|
||||||
|
var url = string.Empty;
|
||||||
|
|
||||||
|
DownloadHandle downloadHandle = null;
|
||||||
|
if (downloadHandle == null)
|
||||||
|
{
|
||||||
|
downloadHandle = new DownloadHandle();
|
||||||
|
downloadHandle.UpdateCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgDownloadV2rayCoreSuccessfully"));
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgUnpacking"));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_updateFunc(true, url);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
downloadHandle.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
_updateFunc(true, args.GetException().Message);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
AbsoluteCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgParsingSuccessfully"), "Core"));
|
||||||
|
url = args.Msg;
|
||||||
|
askToDownload(downloadHandle, url, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgStartUpdating"), "Core"));
|
||||||
|
CheckUpdateAsync(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void UpdateSubscriptionProcess(Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
_updateFunc = update;
|
||||||
|
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgUpdateSubscriptionStart"));
|
||||||
|
|
||||||
|
if (config.subItem == null || config.subItem.Count <= 0)
|
||||||
|
{
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgNoValidSubscription"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int k = 1; k <= config.subItem.Count; k++)
|
||||||
|
{
|
||||||
|
string id = config.subItem[k - 1].id.Trim();
|
||||||
|
string url = config.subItem[k - 1].url.Trim();
|
||||||
|
string userAgent = config.subItem[k - 1].userAgent.Trim();
|
||||||
|
string hashCode = $"{k}->";
|
||||||
|
if (config.subItem[k - 1].enabled == false)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (Utils.IsNullOrEmpty(id) || Utils.IsNullOrEmpty(url))
|
||||||
|
{
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgNoValidSubscription")}");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
DownloadHandle downloadHandle3 = new DownloadHandle();
|
||||||
|
downloadHandle3.UpdateCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgGetSubscriptionSuccessfully")}");
|
||||||
|
string result = Utils.Base64Decode(args.Msg);
|
||||||
|
if (Utils.IsNullOrEmpty(result))
|
||||||
|
{
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgSubscriptionDecodingFailed")}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigHandler.RemoveServerViaSubid(ref config, id);
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgClearSubscription")}");
|
||||||
|
// RefreshServers();
|
||||||
|
int ret = MainFormHandler.Instance.AddBatchServers(config, result, id);
|
||||||
|
if (ret > 0)
|
||||||
|
{
|
||||||
|
// RefreshServers();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgFailedImportSubscription")}");
|
||||||
|
}
|
||||||
|
_updateFunc(true, $"{hashCode}{UIRes.I18N("MsgUpdateSubscriptionEnd")}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
downloadHandle3.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.GetException().Message);
|
||||||
|
};
|
||||||
|
|
||||||
|
downloadHandle3.WebDownloadString(url, userAgent);
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgStartGettingSubscriptions")}");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void UpdateGeoFile(string geoName, Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
_updateFunc = update;
|
||||||
|
var url = string.Format(geoUrl, geoName);
|
||||||
|
|
||||||
|
DownloadHandle downloadHandle = null;
|
||||||
|
if (downloadHandle == null)
|
||||||
|
{
|
||||||
|
downloadHandle = new DownloadHandle();
|
||||||
|
|
||||||
|
downloadHandle.UpdateCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgDownloadGeoFileSuccessfully"), geoName));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string fileName = Utils.GetPath(Utils.GetDownloadFileName(url));
|
||||||
|
if (File.Exists(fileName))
|
||||||
|
{
|
||||||
|
string targetPath = Utils.GetPath($"{geoName}.dat");
|
||||||
|
if (File.Exists(targetPath))
|
||||||
|
{
|
||||||
|
File.Delete(targetPath);
|
||||||
|
}
|
||||||
|
File.Move(fileName, targetPath);
|
||||||
|
_updateFunc(true, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
downloadHandle.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.GetException().Message);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
askToDownload(downloadHandle, url, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region private
|
||||||
|
|
||||||
|
private async void CheckUpdateAsync(string type)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Utils.SetSecurityProtocol();
|
||||||
|
WebRequestHandler webRequestHandler = new WebRequestHandler
|
||||||
|
{
|
||||||
|
AllowAutoRedirect = false
|
||||||
|
};
|
||||||
|
if (httpProxyTest() > 0)
|
||||||
|
{
|
||||||
|
int httpPort = _config.GetLocalPort(Global.InboundHttp);
|
||||||
|
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
||||||
|
webRequestHandler.Proxy = webProxy;
|
||||||
|
}
|
||||||
|
HttpClient httpClient = new HttpClient(webRequestHandler);
|
||||||
|
|
||||||
|
string url;
|
||||||
|
if (type == "v2fly")
|
||||||
|
{
|
||||||
|
url = v2flyCoreLatestUrl;
|
||||||
|
}
|
||||||
|
else if (type == "xray")
|
||||||
|
{
|
||||||
|
url = xrayCoreLatestUrl;
|
||||||
|
}
|
||||||
|
else if (type == "v2rayN")
|
||||||
|
{
|
||||||
|
url = nLatestUrl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Type");
|
||||||
|
}
|
||||||
|
HttpResponseMessage response = await httpClient.GetAsync(url);
|
||||||
|
if (response.StatusCode.ToString() == "Redirect")
|
||||||
|
{
|
||||||
|
responseHandler(type, response.Headers.Location.ToString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Utils.SaveLog("StatusCode error: " + url);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取V2RayCore版本
|
||||||
|
/// </summary>
|
||||||
|
private string getCoreVersion(string type)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var core = string.Empty;
|
||||||
|
var match = string.Empty;
|
||||||
|
if (type == "v2fly")
|
||||||
|
{
|
||||||
|
core = "v2ray.exe";
|
||||||
|
match = "V2Ray";
|
||||||
|
}
|
||||||
|
else if (type == "xray")
|
||||||
|
{
|
||||||
|
core = "xray.exe";
|
||||||
|
match = "Xray";
|
||||||
|
}
|
||||||
|
string filePath = Utils.GetPath(core);
|
||||||
|
if (!File.Exists(filePath))
|
||||||
|
{
|
||||||
|
string msg = string.Format(UIRes.I18N("NotFoundCore"), @"");
|
||||||
|
//ShowMsg(true, msg);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
Process p = new Process();
|
||||||
|
p.StartInfo.FileName = filePath;
|
||||||
|
p.StartInfo.Arguments = "-version";
|
||||||
|
p.StartInfo.WorkingDirectory = Utils.StartupPath();
|
||||||
|
p.StartInfo.UseShellExecute = false;
|
||||||
|
p.StartInfo.RedirectStandardOutput = true;
|
||||||
|
p.StartInfo.CreateNoWindow = true;
|
||||||
|
p.StartInfo.StandardOutputEncoding = Encoding.UTF8;
|
||||||
|
p.Start();
|
||||||
|
p.WaitForExit(5000);
|
||||||
|
string echo = p.StandardOutput.ReadToEnd();
|
||||||
|
string version = Regex.Match(echo, $"{match} ([0-9.]+) \\(").Groups[1].Value;
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void responseHandler(string type, string redirectUrl)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string version = redirectUrl.Substring(redirectUrl.LastIndexOf("/", StringComparison.Ordinal) + 1);
|
||||||
|
|
||||||
|
string curVersion;
|
||||||
|
string message;
|
||||||
|
string url;
|
||||||
|
if (type == "v2fly")
|
||||||
|
{
|
||||||
|
curVersion = "v" + getCoreVersion(type);
|
||||||
|
message = string.Format(UIRes.I18N("IsLatestCore"), curVersion);
|
||||||
|
string osBit = Environment.Is64BitProcess ? "64" : "32";
|
||||||
|
url = string.Format(v2flyCoreUrl, version, osBit);
|
||||||
|
}
|
||||||
|
else if (type == "xray")
|
||||||
|
{
|
||||||
|
curVersion = "v" + getCoreVersion(type);
|
||||||
|
message = string.Format(UIRes.I18N("IsLatestCore"), curVersion);
|
||||||
|
string osBit = Environment.Is64BitProcess ? "64" : "32";
|
||||||
|
url = string.Format(xrayCoreUrl, version, osBit);
|
||||||
|
}
|
||||||
|
else if (type == "v2rayN")
|
||||||
|
{
|
||||||
|
curVersion = FileVersionInfo.GetVersionInfo(Utils.GetExePath()).FileVersion.ToString();
|
||||||
|
message = string.Format(UIRes.I18N("IsLatestN"), curVersion);
|
||||||
|
url = string.Format(nUrl, version);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Type");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (curVersion == version)
|
||||||
|
{
|
||||||
|
AbsoluteCompleted?.Invoke(this, new ResultEventArgs(false, message));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AbsoluteCompleted?.Invoke(this, new ResultEventArgs(true, url));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void askToDownload(DownloadHandle downloadHandle, string url, bool blAsk)
|
||||||
|
{
|
||||||
|
bool blDownload = false;
|
||||||
|
if (blAsk)
|
||||||
|
{
|
||||||
|
if (UI.ShowYesNo(string.Format(UIRes.I18N("DownloadYesNo"), url)) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
blDownload = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
blDownload = true;
|
||||||
|
}
|
||||||
|
if (blDownload)
|
||||||
|
{
|
||||||
|
if (httpProxyTest() > 0)
|
||||||
|
{
|
||||||
|
int httpPort = _config.GetLocalPort(Global.InboundHttp);
|
||||||
|
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
||||||
|
downloadHandle.DownloadFileAsync(url, webProxy, 600);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
downloadHandle.DownloadFileAsync(url, null, 600);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int httpProxyTest()
|
||||||
|
{
|
||||||
|
SpeedtestHandler statistics = new SpeedtestHandler(ref _config);
|
||||||
|
return statistics.RunAvailabilityCheck();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,8 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
|
|
||||||
namespace v2rayN.Handler
|
namespace v2rayN.Handler
|
||||||
@@ -189,6 +191,7 @@ namespace v2rayN.Handler
|
|||||||
&& v2rayConfig.routing.rules != null)
|
&& v2rayConfig.routing.rules != null)
|
||||||
{
|
{
|
||||||
v2rayConfig.routing.domainStrategy = config.domainStrategy;
|
v2rayConfig.routing.domainStrategy = config.domainStrategy;
|
||||||
|
v2rayConfig.routing.domainMatcher = config.domainMatcher;
|
||||||
|
|
||||||
if (config.enableRoutingAdvanced)
|
if (config.enableRoutingAdvanced)
|
||||||
{
|
{
|
||||||
@@ -196,7 +199,10 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
foreach (var item in config.routings[config.routingIndex].rules)
|
foreach (var item in config.routings[config.routingIndex].rules)
|
||||||
{
|
{
|
||||||
routingUserRule(item, ref v2rayConfig);
|
if (item.enabled)
|
||||||
|
{
|
||||||
|
routingUserRule(item, ref v2rayConfig);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -249,8 +255,12 @@ namespace v2rayN.Handler
|
|||||||
var it = Utils.DeepCopy(rules);
|
var it = Utils.DeepCopy(rules);
|
||||||
it.ip = null;
|
it.ip = null;
|
||||||
it.type = "field";
|
it.type = "field";
|
||||||
for (int k = 0; k < it.domain.Count; k++)
|
for (int k = it.domain.Count - 1; k >= 0; k--)
|
||||||
{
|
{
|
||||||
|
if (it.domain[k].StartsWith("#"))
|
||||||
|
{
|
||||||
|
it.domain.RemoveAt(k);
|
||||||
|
}
|
||||||
it.domain[k] = it.domain[k].Replace(Global.RoutingRuleComma, ",");
|
it.domain[k] = it.domain[k].Replace(Global.RoutingRuleComma, ",");
|
||||||
}
|
}
|
||||||
//if (Utils.IsNullOrEmpty(it.port))
|
//if (Utils.IsNullOrEmpty(it.port))
|
||||||
@@ -355,7 +365,14 @@ namespace v2rayN.Handler
|
|||||||
usersItem.id = config.id();
|
usersItem.id = config.id();
|
||||||
usersItem.alterId = config.alterId();
|
usersItem.alterId = config.alterId();
|
||||||
usersItem.email = Global.userEMail;
|
usersItem.email = Global.userEMail;
|
||||||
usersItem.security = config.security();
|
if (Global.vmessSecuritys.Contains(config.security()))
|
||||||
|
{
|
||||||
|
usersItem.security = config.security();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
usersItem.security = Global.DefaultSecurity;
|
||||||
|
}
|
||||||
|
|
||||||
//Mux
|
//Mux
|
||||||
outbound.mux.enabled = config.muxEnabled;
|
outbound.mux.enabled = config.muxEnabled;
|
||||||
@@ -469,7 +486,6 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
//远程服务器用户ID
|
//远程服务器用户ID
|
||||||
usersItem.id = config.id();
|
usersItem.id = config.id();
|
||||||
usersItem.alterId = 0;
|
|
||||||
usersItem.flow = string.Empty;
|
usersItem.flow = string.Empty;
|
||||||
usersItem.email = Global.userEMail;
|
usersItem.email = Global.userEMail;
|
||||||
usersItem.encryption = config.security();
|
usersItem.encryption = config.security();
|
||||||
@@ -487,7 +503,7 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
if (Utils.IsNullOrEmpty(config.flow()))
|
if (Utils.IsNullOrEmpty(config.flow()))
|
||||||
{
|
{
|
||||||
usersItem.flow = "xtls-rprx-origin";
|
usersItem.flow = Global.xtlsFlows[1];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -517,10 +533,27 @@ namespace v2rayN.Handler
|
|||||||
serversItem.address = config.address();
|
serversItem.address = config.address();
|
||||||
serversItem.port = config.port();
|
serversItem.port = config.port();
|
||||||
serversItem.password = config.id();
|
serversItem.password = config.id();
|
||||||
|
serversItem.flow = string.Empty;
|
||||||
|
|
||||||
serversItem.ota = false;
|
serversItem.ota = false;
|
||||||
serversItem.level = 1;
|
serversItem.level = 1;
|
||||||
|
|
||||||
|
//if xtls
|
||||||
|
if (config.streamSecurity() == Global.StreamSecurityX)
|
||||||
|
{
|
||||||
|
if (Utils.IsNullOrEmpty(config.flow()))
|
||||||
|
{
|
||||||
|
serversItem.flow = Global.xtlsFlows[1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
serversItem.flow = config.flow().Replace("splice", "direct");
|
||||||
|
}
|
||||||
|
|
||||||
|
outbound.mux.enabled = false;
|
||||||
|
outbound.mux.concurrency = -1;
|
||||||
|
}
|
||||||
|
|
||||||
outbound.mux.enabled = false;
|
outbound.mux.enabled = false;
|
||||||
outbound.mux.concurrency = -1;
|
outbound.mux.concurrency = -1;
|
||||||
|
|
||||||
@@ -562,7 +595,8 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
TlsSettings tlsSettings = new TlsSettings
|
TlsSettings tlsSettings = new TlsSettings
|
||||||
{
|
{
|
||||||
allowInsecure = config.allowInsecure()
|
allowInsecure = config.allowInsecure(),
|
||||||
|
alpn = config.alpn()
|
||||||
};
|
};
|
||||||
if (!string.IsNullOrWhiteSpace(sni))
|
if (!string.IsNullOrWhiteSpace(sni))
|
||||||
{
|
{
|
||||||
@@ -582,7 +616,8 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
TlsSettings xtlsSettings = new TlsSettings
|
TlsSettings xtlsSettings = new TlsSettings
|
||||||
{
|
{
|
||||||
allowInsecure = config.allowInsecure()
|
allowInsecure = config.allowInsecure(),
|
||||||
|
alpn = config.alpn()
|
||||||
};
|
};
|
||||||
if (!string.IsNullOrWhiteSpace(sni))
|
if (!string.IsNullOrWhiteSpace(sni))
|
||||||
{
|
{
|
||||||
@@ -704,8 +739,9 @@ namespace v2rayN.Handler
|
|||||||
break;
|
break;
|
||||||
case "grpc":
|
case "grpc":
|
||||||
var grpcSettings = new GrpcSettings();
|
var grpcSettings = new GrpcSettings();
|
||||||
|
|
||||||
grpcSettings.serviceName = config.path();
|
grpcSettings.serviceName = config.path();
|
||||||
|
grpcSettings.multiMode = (config.headerType() == Global.GrpcmultiMode ? true : false);
|
||||||
streamSettings.grpcSettings = grpcSettings;
|
streamSettings.grpcSettings = grpcSettings;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -1001,7 +1037,6 @@ namespace v2rayN.Handler
|
|||||||
else if (config.configType() == (int)EConfigType.VLESS)
|
else if (config.configType() == (int)EConfigType.VLESS)
|
||||||
{
|
{
|
||||||
inbound.protocol = Global.vlessProtocolLite;
|
inbound.protocol = Global.vlessProtocolLite;
|
||||||
usersItem.alterId = 0;
|
|
||||||
usersItem.flow = config.flow();
|
usersItem.flow = config.flow();
|
||||||
inbound.settings.decryption = config.security();
|
inbound.settings.decryption = config.security();
|
||||||
}
|
}
|
||||||
@@ -1359,7 +1394,7 @@ namespace v2rayN.Handler
|
|||||||
#region Gen speedtest config
|
#region Gen speedtest config
|
||||||
|
|
||||||
|
|
||||||
public static string GenerateClientSpeedtestConfigString(Config config, List<int> selecteds, out string msg)
|
public static string GenerateClientSpeedtestConfigString(Config config, List<ServerTestItem> selecteds, out string msg)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -1390,6 +1425,12 @@ namespace v2rayN.Handler
|
|||||||
msg = UIRes.I18N("FailedGenDefaultConfiguration");
|
msg = UIRes.I18N("FailedGenDefaultConfiguration");
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
List<IPEndPoint> lstIpEndPoints = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
lstIpEndPoints = new List<IPEndPoint>(IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpListeners());
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
|
||||||
log(configCopy, ref v2rayConfig, false);
|
log(configCopy, ref v2rayConfig, false);
|
||||||
//routing(config, ref v2rayConfig);
|
//routing(config, ref v2rayConfig);
|
||||||
@@ -1398,19 +1439,32 @@ namespace v2rayN.Handler
|
|||||||
v2rayConfig.inbounds.Clear(); // Remove "proxy" service for speedtest, avoiding port conflicts.
|
v2rayConfig.inbounds.Clear(); // Remove "proxy" service for speedtest, avoiding port conflicts.
|
||||||
|
|
||||||
int httpPort = configCopy.GetLocalPort("speedtest");
|
int httpPort = configCopy.GetLocalPort("speedtest");
|
||||||
foreach (int index in selecteds)
|
|
||||||
|
foreach (var it in selecteds)
|
||||||
{
|
{
|
||||||
if (configCopy.vmess[index].configType == (int)EConfigType.Custom)
|
if (it.configType == (int)EConfigType.Custom)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (it.port <= 0)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
configCopy.index = index;
|
configCopy.index = it.selected;
|
||||||
|
var port = httpPort + it.selected;
|
||||||
|
|
||||||
|
//Port In Used
|
||||||
|
if (lstIpEndPoints != null && lstIpEndPoints.FindIndex(_it => _it.Port == port) >= 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
it.port = port;
|
||||||
|
|
||||||
Inbounds inbound = new Inbounds
|
Inbounds inbound = new Inbounds
|
||||||
{
|
{
|
||||||
listen = Global.Loopback,
|
listen = Global.Loopback,
|
||||||
port = httpPort + index,
|
port = port,
|
||||||
protocol = Global.InboundHttp
|
protocol = Global.InboundHttp
|
||||||
};
|
};
|
||||||
inbound.tag = Global.InboundHttp + inbound.port.ToString();
|
inbound.tag = Global.InboundHttp + inbound.port.ToString();
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ namespace v2rayN.Handler
|
|||||||
/// 新建进程,载入V2ray配置文件字符串
|
/// 新建进程,载入V2ray配置文件字符串
|
||||||
/// 返回新进程pid。
|
/// 返回新进程pid。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int LoadV2rayConfigString(Config config, List<int> _selecteds)
|
public int LoadV2rayConfigString(Config config, List<ServerTestItem> _selecteds)
|
||||||
{
|
{
|
||||||
int pid = -1;
|
int pid = -1;
|
||||||
string configStr = V2rayConfigHandler.GenerateClientSpeedtestConfigString(config, _selecteds, out string msg);
|
string configStr = V2rayConfigHandler.GenerateClientSpeedtestConfigString(config, _selecteds, out string msg);
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
{
|
{
|
||||||
var type = config.sysProxyType;
|
var type = config.sysProxyType;
|
||||||
|
|
||||||
if (forceDisable)
|
if (forceDisable && type == ESysProxyType.ForcedChange)
|
||||||
{
|
{
|
||||||
type = ESysProxyType.ForcedClear;
|
type = ESysProxyType.ForcedClear;
|
||||||
}
|
}
|
||||||
@@ -166,7 +166,8 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
}
|
}
|
||||||
if (type == ESysProxyType.ForcedChange)
|
if (type == ESysProxyType.ForcedChange)
|
||||||
{
|
{
|
||||||
SysProxyHandle.SetIEProxy(true, true, $"{Global.Loopback}:{port}");
|
var strExceptions = $"{config.constItem.defIEProxyExceptions};{config.systemProxyExceptions}";
|
||||||
|
SysProxyHandle.SetIEProxy(true, $"{Global.Loopback}:{port}", strExceptions);
|
||||||
}
|
}
|
||||||
else if (type == ESysProxyType.ForcedClear)
|
else if (type == ESysProxyType.ForcedClear)
|
||||||
{
|
{
|
||||||
@@ -182,5 +183,17 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ResetIEProxy4WindowsShutDown()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//TODO To be verified
|
||||||
|
Utils.RegWriteValue(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", 0);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,6 +82,16 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
ExecSysproxy(arguments);
|
ExecSysproxy(arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void SetIEProxy(bool global, string strProxy, string strExceptions)
|
||||||
|
{
|
||||||
|
string arguments = global
|
||||||
|
? $"global {strProxy} {strExceptions}"
|
||||||
|
: $"pac {strProxy}";
|
||||||
|
|
||||||
|
ExecSysproxy(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
// set system proxy to 1 (null) (null) (null)
|
// set system proxy to 1 (null) (null) (null)
|
||||||
public static bool ResetIEProxy()
|
public static bool ResetIEProxy()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -76,21 +76,6 @@ namespace v2rayN.Mode
|
|||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 自定义服务器下载测速url
|
|
||||||
/// </summary>
|
|
||||||
public string speedTestUrl
|
|
||||||
{
|
|
||||||
get; set;
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 自定义“服务器真连接延迟”测试url
|
|
||||||
/// </summary>
|
|
||||||
public string speedPingTestUrl
|
|
||||||
{
|
|
||||||
get; set;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 允许来自局域网的连接
|
/// 允许来自局域网的连接
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -161,6 +146,10 @@ namespace v2rayN.Mode
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
public string domainMatcher
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
public int routingIndex
|
public int routingIndex
|
||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
@@ -183,6 +172,23 @@ namespace v2rayN.Mode
|
|||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// systemProxyExceptions
|
||||||
|
/// </summary>
|
||||||
|
public string systemProxyExceptions
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int autoUpdateInterval
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
} = 0;
|
||||||
|
|
||||||
|
public ConstItem constItem
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
#region 函数
|
#region 函数
|
||||||
|
|
||||||
public string address()
|
public string address()
|
||||||
@@ -354,6 +360,37 @@ namespace v2rayN.Mode
|
|||||||
}
|
}
|
||||||
return vmess[index].sni.TrimEx();
|
return vmess[index].sni.TrimEx();
|
||||||
}
|
}
|
||||||
|
public List<string> alpn()
|
||||||
|
{
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (vmess[index].alpn != null && vmess[index].alpn.Count > 0)
|
||||||
|
{
|
||||||
|
return vmess[index].alpn;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string indexId()
|
||||||
|
{
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
return vmess[index].indexId.TrimEx();
|
||||||
|
}
|
||||||
|
public int FindIndexId(string indexId)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(indexId))
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return vmess.FindIndex(it => it.indexId == indexId);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -363,6 +400,7 @@ namespace v2rayN.Mode
|
|||||||
{
|
{
|
||||||
public VmessItem()
|
public VmessItem()
|
||||||
{
|
{
|
||||||
|
indexId = string.Empty;
|
||||||
configVersion = 1;
|
configVersion = 1;
|
||||||
address = string.Empty;
|
address = string.Empty;
|
||||||
port = 0;
|
port = 0;
|
||||||
@@ -449,6 +487,10 @@ namespace v2rayN.Mode
|
|||||||
itemId = Utils.Base64Encode(itemId);
|
itemId = Utils.Base64Encode(itemId);
|
||||||
return itemId;
|
return itemId;
|
||||||
}
|
}
|
||||||
|
public string indexId
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 版本(现在=2)
|
/// 版本(现在=2)
|
||||||
@@ -533,7 +575,7 @@ namespace v2rayN.Mode
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 底层传输安全
|
/// 传输层安全
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string streamSecurity
|
public string streamSecurity
|
||||||
{
|
{
|
||||||
@@ -587,6 +629,13 @@ namespace v2rayN.Mode
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// tls alpn
|
||||||
|
/// </summary>
|
||||||
|
public List<string> alpn
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
@@ -708,6 +757,14 @@ namespace v2rayN.Mode
|
|||||||
/// enable
|
/// enable
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool enabled { get; set; } = true;
|
public bool enabled { get; set; } = true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string userAgent
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
} = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
@@ -725,4 +782,27 @@ namespace v2rayN.Mode
|
|||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class ConstItem
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 自定义服务器下载测速url
|
||||||
|
/// </summary>
|
||||||
|
public string speedTestUrl
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 自定义“服务器真连接延迟”测试url
|
||||||
|
/// </summary>
|
||||||
|
public string speedPingTestUrl
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
public string defIEProxyExceptions
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ namespace v2rayN.Mode
|
|||||||
port,
|
port,
|
||||||
security,
|
security,
|
||||||
network,
|
network,
|
||||||
|
streamSecurity,
|
||||||
subRemarks,
|
subRemarks,
|
||||||
testResult,
|
testResult,
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ namespace v2rayN.Mode
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
public string customIcon
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,9 @@ namespace v2rayN.Mode
|
|||||||
public List<string> domain { get; set; }
|
public List<string> domain { get; set; }
|
||||||
|
|
||||||
public List<string> protocol { get; set; }
|
public List<string> protocol { get; set; }
|
||||||
|
|
||||||
|
public bool enabled { get; set; } = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
29
v2rayN/v2rayN/Mode/ServerTestItem.cs
Normal file
29
v2rayN/v2rayN/Mode/ServerTestItem.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace v2rayN.Mode
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
class ServerTestItem
|
||||||
|
{
|
||||||
|
public int selected
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
public string indexId
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
public string address
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
public int port
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
public int configType
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,7 +25,7 @@ namespace v2rayN.Mode
|
|||||||
/// 统计需要, 空对象
|
/// 统计需要, 空对象
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Stats stats { get; set; }
|
public Stats stats { get; set; }
|
||||||
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public API api { get; set; }
|
public API api { get; set; }
|
||||||
|
|
||||||
@@ -133,14 +133,14 @@ namespace v2rayN.Mode
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public List<UsersItem> clients { get; set; }
|
public List<UsersItem> clients { get; set; }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// VLESS
|
/// VLESS
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string decryption { get; set; }
|
public string decryption { get; set; }
|
||||||
|
|
||||||
public bool allowTransparent { get; set; }
|
public bool allowTransparent { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class UsersItem
|
public class UsersItem
|
||||||
@@ -170,7 +170,7 @@ namespace v2rayN.Mode
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// VLESS
|
/// VLESS
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string flow { get; set; }
|
public string flow { get; set; }
|
||||||
}
|
}
|
||||||
public class Sniffing
|
public class Sniffing
|
||||||
{
|
{
|
||||||
@@ -271,6 +271,11 @@ namespace v2rayN.Mode
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int level { get; set; }
|
public int level { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// trojan
|
||||||
|
/// </summary>
|
||||||
|
public string flow { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -332,6 +337,10 @@ namespace v2rayN.Mode
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
public string domainMatcher { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public List<RulesItem> rules { get; set; }
|
public List<RulesItem> rules { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -395,10 +404,17 @@ namespace v2rayN.Mode
|
|||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string serverName { get; set; }
|
public string serverName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public List<string> alpn
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TcpSettings
|
public class TcpSettings
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 数据包头部伪装设置
|
/// 数据包头部伪装设置
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -462,7 +478,7 @@ namespace v2rayN.Mode
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class WsSettings
|
public class WsSettings
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -518,6 +534,10 @@ namespace v2rayN.Mode
|
|||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string serviceName { get; set; }
|
public string serviceName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public bool multiMode { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,61 +2,68 @@
|
|||||||
|
|
||||||
namespace v2rayN.Mode
|
namespace v2rayN.Mode
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// https://github.com/2dust/v2rayN/wiki/
|
||||||
|
/// </summary>
|
||||||
[Serializable]
|
[Serializable]
|
||||||
class VmessQRCode
|
class VmessQRCode
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 版本
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string v { get; set; } = string.Empty;
|
public string v { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 备注
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ps { get; set; } = string.Empty;
|
public string ps { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// VMess 远程服务器地址
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string add { get; set; } = string.Empty;
|
public string add { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// VMess 远程服务器端口
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string port { get; set; } = string.Empty;
|
public string port { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// VMess 远程服务器ID
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string id { get; set; } = string.Empty;
|
public string id { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// VMess 远程服务器额外ID
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string aid { get; set; } = string.Empty;
|
public string aid { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// VMess Security
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string scy { get; set; } = string.Empty;
|
public string scy { get; set; } = string.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 传输协议tcp,kcp,ws
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string net { get; set; } = string.Empty;
|
public string net { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 伪装类型
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string type { get; set; } = string.Empty;
|
public string type { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 伪装的域名
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string host { get; set; } = string.Empty;
|
public string host { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// path
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string path { get; set; } = string.Empty;
|
public string path { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 底层传输安全
|
/// TLS
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string tls { get; set; } = string.Empty;
|
public string tls { get; set; } = string.Empty;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SNI
|
/// TLS SNI
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string sni { get; set; } = string.Empty;
|
public string sni { get; set; } = string.Empty;
|
||||||
|
/// <summary>
|
||||||
|
/// TLS alpn
|
||||||
|
/// </summary>
|
||||||
|
public string alpn { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ namespace v2rayN
|
|||||||
|
|
||||||
if (!IsDuplicateInstance())
|
if (!IsDuplicateInstance())
|
||||||
{
|
{
|
||||||
|
Logging.Setup();
|
||||||
Utils.SaveLog("v2rayN start up " + Utils.GetVersion());
|
Utils.SaveLog($"v2rayN start up | {Utils.GetVersion()} | {Utils.GetExePath()}");
|
||||||
|
|
||||||
//设置语言环境
|
//设置语言环境
|
||||||
string lang = Utils.RegReadValue(Global.MyRegPath, Global.MyRegKeyLanguage, "zh-Hans");
|
string lang = Utils.RegReadValue(Global.MyRegPath, Global.MyRegKeyLanguage, "zh-Hans");
|
||||||
@@ -81,7 +81,7 @@ namespace v2rayN
|
|||||||
|
|
||||||
string name = Utils.GetExePath(); // Allow different locations to run
|
string name = Utils.GetExePath(); // Allow different locations to run
|
||||||
name = name.Replace("\\", "/"); // https://stackoverflow.com/questions/20714120/could-not-find-a-part-of-the-path-error-while-creating-mutex
|
name = name.Replace("\\", "/"); // https://stackoverflow.com/questions/20714120/could-not-find-a-part-of-the-path-error-while-creating-mutex
|
||||||
|
|
||||||
Global.mutexObj = new Mutex(false, name, out bool bCreatedNew);
|
Global.mutexObj = new Mutex(false, name, out bool bCreatedNew);
|
||||||
return !bCreatedNew;
|
return !bCreatedNew;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
|
|||||||
// 方法是按如下所示使用“*”:
|
// 方法是按如下所示使用“*”:
|
||||||
//[assembly: AssemblyVersion("1.0.*")]
|
//[assembly: AssemblyVersion("1.0.*")]
|
||||||
//[assembly: AssemblyVersion("1.0.0")]
|
//[assembly: AssemblyVersion("1.0.0")]
|
||||||
[assembly: AssemblyFileVersion("4.14")]
|
[assembly: AssemblyFileVersion("4.30")]
|
||||||
|
|||||||
2
v2rayN/v2rayN/Properties/Settings.Designer.cs
generated
2
v2rayN/v2rayN/Properties/Settings.Designer.cs
generated
@@ -12,7 +12,7 @@ namespace v2rayN.Properties {
|
|||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|||||||
154
v2rayN/v2rayN/Resx/ResUI.Designer.cs
generated
154
v2rayN/v2rayN/Resx/ResUI.Designer.cs
generated
@@ -47,8 +47,8 @@ namespace v2rayN.Resx {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 重写当前线程的 CurrentUICulture 属性
|
/// 重写当前线程的 CurrentUICulture 属性,对
|
||||||
/// 重写当前线程的 CurrentUICulture 属性。
|
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
internal static global::System.Globalization.CultureInfo Culture {
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
@@ -187,11 +187,11 @@ namespace v2rayN.Resx {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Please fill in the correct format extra ID 的本地化字符串。
|
/// 查找类似 Please fill in the correct custom DNS 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string FillCorrectAlterId {
|
internal static string FillCorrectDNSText {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("FillCorrectAlterId", resourceCulture);
|
return ResourceManager.GetString("FillCorrectDNSText", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -330,6 +330,15 @@ namespace v2rayN.Resx {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 Custom Icon 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string LvCustomIcon {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("LvCustomIcon", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Security 的本地化字符串。
|
/// 查找类似 Security 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -384,6 +393,15 @@ namespace v2rayN.Resx {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 TLS 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string LvTLS {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("LvTLS", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Today download traffic 的本地化字符串。
|
/// 查找类似 Today download traffic 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -456,6 +474,15 @@ namespace v2rayN.Resx {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 Download GeoFile: {0} successfully 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string MsgDownloadGeoFileSuccessfully {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("MsgDownloadGeoFileSuccessfully", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Download Core successfully 的本地化字符串。
|
/// 查找类似 Download Core successfully 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -483,6 +510,15 @@ namespace v2rayN.Resx {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 Informations (Filter : {0}) 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string MsgInformationTitle {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("MsgInformationTitle", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Please fill in the address (Url) 的本地化字符串。
|
/// 查找类似 Please fill in the address (Url) 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -870,5 +906,113 @@ namespace v2rayN.Resx {
|
|||||||
return ResourceManager.GetString("TestMeOutput", resourceCulture);
|
return ResourceManager.GetString("TestMeOutput", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *tcp camouflage type 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportHeaderTypeTip1 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportHeaderTypeTip1", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *kcp camouflage type 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportHeaderTypeTip2 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportHeaderTypeTip2", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *QUIC camouflage type 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportHeaderTypeTip3 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportHeaderTypeTip3", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *grpc mode 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportHeaderTypeTip4 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportHeaderTypeTip4", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *ws path 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportPathTip1 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportPathTip1", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *h2 path 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportPathTip2 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportPathTip2", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *QUIC key/Kcp seed 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportPathTip3 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportPathTip3", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *grpc serviceName 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportPathTip4 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportPathTip4", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *http host Separated by commas (,) 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportRequestHostTip1 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportRequestHostTip1", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *ws host 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportRequestHostTip2 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportRequestHostTip2", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *h2 host Separated by commas (,) 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportRequestHostTip3 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportRequestHostTip3", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 *QUIC securty 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string TransportRequestHostTip4 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TransportRequestHostTip4", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,9 +156,6 @@
|
|||||||
<data name="FailedReadConfiguration" xml:space="preserve">
|
<data name="FailedReadConfiguration" xml:space="preserve">
|
||||||
<value>Failed to read configuration file</value>
|
<value>Failed to read configuration file</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FillCorrectAlterId" xml:space="preserve">
|
|
||||||
<value>Please fill in the correct format extra ID</value>
|
|
||||||
</data>
|
|
||||||
<data name="FillCorrectServerPort" xml:space="preserve">
|
<data name="FillCorrectServerPort" xml:space="preserve">
|
||||||
<value>Please fill in the correct format server port</value>
|
<value>Please fill in the correct format server port</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -388,4 +385,55 @@
|
|||||||
<data name="AddBatchRoutingRulesYesNo" xml:space="preserve">
|
<data name="AddBatchRoutingRulesYesNo" xml:space="preserve">
|
||||||
<value>Do you want to append rules? Choose yes to append, choose otherwise to replace</value>
|
<value>Do you want to append rules? Choose yes to append, choose otherwise to replace</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="MsgDownloadGeoFileSuccessfully" xml:space="preserve">
|
||||||
|
<value>Download GeoFile: {0} successfully</value>
|
||||||
|
</data>
|
||||||
|
<data name="MsgInformationTitle" xml:space="preserve">
|
||||||
|
<value>Informations (Filter : {0})</value>
|
||||||
|
</data>
|
||||||
|
<data name="LvCustomIcon" xml:space="preserve">
|
||||||
|
<value>Custom Icon</value>
|
||||||
|
</data>
|
||||||
|
<data name="FillCorrectDNSText" xml:space="preserve">
|
||||||
|
<value>Please fill in the correct custom DNS</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportPathTip1" xml:space="preserve">
|
||||||
|
<value>*ws path</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportPathTip2" xml:space="preserve">
|
||||||
|
<value>*h2 path</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportPathTip3" xml:space="preserve">
|
||||||
|
<value>*QUIC key/Kcp seed</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportPathTip4" xml:space="preserve">
|
||||||
|
<value>*grpc serviceName</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportRequestHostTip1" xml:space="preserve">
|
||||||
|
<value>*http host Separated by commas (,)</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportRequestHostTip2" xml:space="preserve">
|
||||||
|
<value>*ws host</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportRequestHostTip3" xml:space="preserve">
|
||||||
|
<value>*h2 host Separated by commas (,)</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportRequestHostTip4" xml:space="preserve">
|
||||||
|
<value>*QUIC securty</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportHeaderTypeTip1" xml:space="preserve">
|
||||||
|
<value>*tcp camouflage type</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportHeaderTypeTip2" xml:space="preserve">
|
||||||
|
<value>*kcp camouflage type</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportHeaderTypeTip3" xml:space="preserve">
|
||||||
|
<value>*QUIC camouflage type</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportHeaderTypeTip4" xml:space="preserve">
|
||||||
|
<value>*grpc mode</value>
|
||||||
|
</data>
|
||||||
|
<data name="LvTLS" xml:space="preserve">
|
||||||
|
<value>TLS</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -156,9 +156,6 @@
|
|||||||
<data name="FailedReadConfiguration" xml:space="preserve">
|
<data name="FailedReadConfiguration" xml:space="preserve">
|
||||||
<value>读取配置文件失败</value>
|
<value>读取配置文件失败</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FillCorrectAlterId" xml:space="preserve">
|
|
||||||
<value>请填写正确格式额外ID</value>
|
|
||||||
</data>
|
|
||||||
<data name="FillCorrectServerPort" xml:space="preserve">
|
<data name="FillCorrectServerPort" xml:space="preserve">
|
||||||
<value>请填写正确格式服务器端口</value>
|
<value>请填写正确格式服务器端口</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -388,4 +385,55 @@
|
|||||||
<data name="AddBatchRoutingRulesYesNo" xml:space="preserve">
|
<data name="AddBatchRoutingRulesYesNo" xml:space="preserve">
|
||||||
<value>是否追加规则?选择是则追加,选择否则替换</value>
|
<value>是否追加规则?选择是则追加,选择否则替换</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="MsgDownloadGeoFileSuccessfully" xml:space="preserve">
|
||||||
|
<value>下载 GeoFile: {0} 成功</value>
|
||||||
|
</data>
|
||||||
|
<data name="MsgInformationTitle" xml:space="preserve">
|
||||||
|
<value>信息 (过滤器 : {0})</value>
|
||||||
|
</data>
|
||||||
|
<data name="LvCustomIcon" xml:space="preserve">
|
||||||
|
<value>自定义图标</value>
|
||||||
|
</data>
|
||||||
|
<data name="FillCorrectDNSText" xml:space="preserve">
|
||||||
|
<value>请填写正确的自定义DNS</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportPathTip1" xml:space="preserve">
|
||||||
|
<value>*ws path</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportPathTip2" xml:space="preserve">
|
||||||
|
<value>*h2 path</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportPathTip3" xml:space="preserve">
|
||||||
|
<value>*QUIC 加密密钥/Kcp seed</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportPathTip4" xml:space="preserve">
|
||||||
|
<value>*grpc serviceName</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportRequestHostTip1" xml:space="preserve">
|
||||||
|
<value>*http host中间逗号(,)隔开</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportRequestHostTip2" xml:space="preserve">
|
||||||
|
<value>*ws host</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportRequestHostTip3" xml:space="preserve">
|
||||||
|
<value>*h2 host中间逗号(,)隔开</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportRequestHostTip4" xml:space="preserve">
|
||||||
|
<value>*QUIC 加密方式</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportHeaderTypeTip1" xml:space="preserve">
|
||||||
|
<value>*tcp伪装类型</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportHeaderTypeTip2" xml:space="preserve">
|
||||||
|
<value>*kcp伪装类型</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportHeaderTypeTip3" xml:space="preserve">
|
||||||
|
<value>*QUIC伪装类型</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransportHeaderTypeTip4" xml:space="preserve">
|
||||||
|
<value>*grpc 模式</value>
|
||||||
|
</data>
|
||||||
|
<data name="LvTLS" xml:space="preserve">
|
||||||
|
<value>传输层安全</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -47,7 +47,6 @@
|
|||||||
"port": 10086,
|
"port": 10086,
|
||||||
"users": [{
|
"users": [{
|
||||||
"id": "a3482e88-686a-4a58-8126-99c9df64b7bf",
|
"id": "a3482e88-686a-4a58-8126-99c9df64b7bf",
|
||||||
"alterId": 64,
|
|
||||||
"security": "auto"
|
"security": "auto"
|
||||||
}]
|
}]
|
||||||
}],
|
}],
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
"clients": [{
|
"clients": [{
|
||||||
"id": "23ad6b10-8d1a-40f7-8ad0-e3e35cd38297",
|
"id": "23ad6b10-8d1a-40f7-8ad0-e3e35cd38297",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"alterId": 64,
|
|
||||||
"email": "t@t.tt"
|
"email": "t@t.tt"
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
|||||||
29
v2rayN/v2rayN/Sample/custom_routing_black
Normal file
29
v2rayN/v2rayN/Sample/custom_routing_black
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"outboundTag": "direct",
|
||||||
|
"protocol": [
|
||||||
|
"bittorrent"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"outboundTag": "block",
|
||||||
|
"domain": [
|
||||||
|
"geosite:category-ads-all"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"outboundTag": "proxy",
|
||||||
|
"ip": [
|
||||||
|
"geoip:telegram"
|
||||||
|
],
|
||||||
|
"domain": [
|
||||||
|
"geosite:gfw",
|
||||||
|
"geosite:greatfire",
|
||||||
|
"geosite:tld-!cn"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"port": "0-65535",
|
||||||
|
"outboundTag": "direct"
|
||||||
|
}
|
||||||
|
]
|
||||||
37
v2rayN/v2rayN/Tool/Logging.cs
Normal file
37
v2rayN/v2rayN/Tool/Logging.cs
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
using log4net;
|
||||||
|
using log4net.Appender;
|
||||||
|
using log4net.Core;
|
||||||
|
using log4net.Layout;
|
||||||
|
using log4net.Repository.Hierarchy;
|
||||||
|
|
||||||
|
namespace v2rayN.Tool
|
||||||
|
{
|
||||||
|
public class Logging
|
||||||
|
{
|
||||||
|
public static void Setup()
|
||||||
|
{
|
||||||
|
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
|
||||||
|
|
||||||
|
PatternLayout patternLayout = new PatternLayout();
|
||||||
|
patternLayout.ConversionPattern = "%date [%thread] %-5level %logger - %message%newline";
|
||||||
|
patternLayout.ActivateOptions();
|
||||||
|
|
||||||
|
RollingFileAppender roller = new RollingFileAppender();
|
||||||
|
roller.AppendToFile = true;
|
||||||
|
roller.RollingStyle = RollingFileAppender.RollingMode.Date;
|
||||||
|
roller.DatePattern = "yyyy-MM-dd'.txt'";
|
||||||
|
roller.File = Utils.GetPath(@"guiLogs\");
|
||||||
|
roller.Layout = patternLayout;
|
||||||
|
roller.StaticLogFileName = false;
|
||||||
|
roller.ActivateOptions();
|
||||||
|
hierarchy.Root.AddAppender(roller);
|
||||||
|
|
||||||
|
MemoryAppender memory = new MemoryAppender();
|
||||||
|
memory.ActivateOptions();
|
||||||
|
hierarchy.Root.AddAppender(memory);
|
||||||
|
|
||||||
|
hierarchy.Root.Level = Level.Info;
|
||||||
|
hierarchy.Configured = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,6 +21,7 @@ using System.Security.Principal;
|
|||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
|
using log4net;
|
||||||
|
|
||||||
namespace v2rayN
|
namespace v2rayN
|
||||||
{
|
{
|
||||||
@@ -47,8 +48,9 @@ namespace v2rayN
|
|||||||
result = reader.ReadToEnd();
|
result = reader.ReadToEnd();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -69,8 +71,9 @@ namespace v2rayN
|
|||||||
result = reader.ReadToEnd();
|
result = reader.ReadToEnd();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -108,8 +111,9 @@ namespace v2rayN
|
|||||||
Formatting.Indented,
|
Formatting.Indented,
|
||||||
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
|
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -141,8 +145,9 @@ namespace v2rayN
|
|||||||
}
|
}
|
||||||
result = 0;
|
result = 0;
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
result = -1;
|
result = -1;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -155,8 +160,10 @@ namespace v2rayN
|
|||||||
JObject obj = JObject.Parse(strJson);
|
JObject obj = JObject.Parse(strJson);
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -173,6 +180,10 @@ namespace v2rayN
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (lst == null)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
if (wrap)
|
if (wrap)
|
||||||
{
|
{
|
||||||
return string.Join("," + Environment.NewLine, lst.ToArray());
|
return string.Join("," + Environment.NewLine, lst.ToArray());
|
||||||
@@ -182,8 +193,9 @@ namespace v2rayN
|
|||||||
return string.Join(",", lst.ToArray());
|
return string.Join(",", lst.ToArray());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -199,8 +211,9 @@ namespace v2rayN
|
|||||||
str = str.Replace(Environment.NewLine, "");
|
str = str.Replace(Environment.NewLine, "");
|
||||||
return new List<string>(str.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));
|
return new List<string>(str.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
return new List<string>();
|
return new List<string>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -265,8 +278,9 @@ namespace v2rayN
|
|||||||
{
|
{
|
||||||
return Convert.ToInt32(obj);
|
return Convert.ToInt32(obj);
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -277,8 +291,9 @@ namespace v2rayN
|
|||||||
{
|
{
|
||||||
return (obj == null ? string.Empty : obj.ToString());
|
return (obj == null ? string.Empty : obj.ToString());
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -338,37 +353,7 @@ namespace v2rayN
|
|||||||
return $"{string.Format("{0:f1}", result)} {unit}";
|
return $"{string.Format("{0:f1}", result)} {unit}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DedupServerList(List<Mode.VmessItem> source, out List<Mode.VmessItem> result, bool keepOlder)
|
|
||||||
{
|
|
||||||
List<Mode.VmessItem> list = new List<Mode.VmessItem>();
|
|
||||||
if (!keepOlder) source.Reverse(); // Remove the early items first
|
|
||||||
|
|
||||||
bool _isAdded(Mode.VmessItem o, Mode.VmessItem n)
|
|
||||||
{
|
|
||||||
return o.configVersion == n.configVersion &&
|
|
||||||
o.configType == n.configType &&
|
|
||||||
o.address == n.address &&
|
|
||||||
o.port == n.port &&
|
|
||||||
o.id == n.id &&
|
|
||||||
o.alterId == n.alterId &&
|
|
||||||
o.security == n.security &&
|
|
||||||
o.network == n.network &&
|
|
||||||
o.headerType == n.headerType &&
|
|
||||||
o.requestHost == n.requestHost &&
|
|
||||||
o.path == n.path &&
|
|
||||||
o.streamSecurity == n.streamSecurity;
|
|
||||||
// skip (will remove) different remarks
|
|
||||||
}
|
|
||||||
foreach (Mode.VmessItem item in source)
|
|
||||||
{
|
|
||||||
if (!list.Exists(i => _isAdded(i, item)))
|
|
||||||
{
|
|
||||||
list.Add(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!keepOlder) list.Reverse();
|
|
||||||
result = list;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string UrlEncode(string url)
|
public static string UrlEncode(string url)
|
||||||
{
|
{
|
||||||
@@ -395,8 +380,9 @@ namespace v2rayN
|
|||||||
int var1 = ToInt(oText);
|
int var1 = ToInt(oText);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -536,10 +522,11 @@ namespace v2rayN
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
string exePath = GetExePath();
|
string exePath = GetExePath();
|
||||||
RegWriteValue(autoRunRegPath, autoRunName, run ? exePath : "");
|
RegWriteValue(autoRunRegPath, autoRunName, run ? $"\"{exePath}\"" : "");
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -553,13 +540,14 @@ namespace v2rayN
|
|||||||
{
|
{
|
||||||
string value = RegReadValue(autoRunRegPath, autoRunName, "");
|
string value = RegReadValue(autoRunRegPath, autoRunName, "");
|
||||||
string exePath = GetExePath();
|
string exePath = GetExePath();
|
||||||
if (value?.Equals(exePath) == true)
|
if (value?.Equals(exePath) == true || value?.Equals($"\"{exePath}\"") == true)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -608,8 +596,9 @@ namespace v2rayN
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
@@ -618,13 +607,13 @@ namespace v2rayN
|
|||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RegWriteValue(string path, string name, string value)
|
public static void RegWriteValue(string path, string name, object value)
|
||||||
{
|
{
|
||||||
RegistryKey regKey = null;
|
RegistryKey regKey = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
regKey = Registry.CurrentUser.CreateSubKey(path);
|
regKey = Registry.CurrentUser.CreateSubKey(path);
|
||||||
if (IsNullOrEmpty(value))
|
if (IsNullOrEmpty(value.ToString()))
|
||||||
{
|
{
|
||||||
regKey?.DeleteValue(name, false);
|
regKey?.DeleteValue(name, false);
|
||||||
}
|
}
|
||||||
@@ -633,14 +622,35 @@ namespace v2rayN
|
|||||||
regKey?.SetValue(name, value);
|
regKey?.SetValue(name, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
regKey?.Close();
|
regKey?.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 判断.Net Framework的Release是否符合
|
||||||
|
/// (.Net Framework 版本在4.0及以上)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="release">需要的版本4.6.2=394802;4.8=528040</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool GetDotNetRelease(int release)
|
||||||
|
{
|
||||||
|
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
|
||||||
|
using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
|
||||||
|
{
|
||||||
|
if (ndpKey != null && ndpKey.GetValue("Release") != null)
|
||||||
|
{
|
||||||
|
return (int)ndpKey.GetValue("Release") >= release ? true : false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 测速
|
#region 测速
|
||||||
@@ -674,8 +684,9 @@ namespace v2rayN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return roundtripTime;
|
return roundtripTime;
|
||||||
@@ -697,20 +708,54 @@ namespace v2rayN
|
|||||||
lstIPAddress.Add(ipa.ToString());
|
lstIPAddress.Add(ipa.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
return lstIPAddress;
|
return lstIPAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetSecurityProtocol()
|
public static void SetSecurityProtocol()
|
||||||
{
|
{
|
||||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
|
string securityProtocolTls13 = RegReadValue(Global.MyRegPath, Global.MyRegKeySecurityProtocolTls13, "0");
|
||||||
| SecurityProtocolType.Tls
|
|
||||||
| SecurityProtocolType.Tls11
|
if (securityProtocolTls13.Equals("1"))
|
||||||
| SecurityProtocolType.Tls12;
|
{
|
||||||
|
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
|
||||||
|
| SecurityProtocolType.Tls
|
||||||
|
| SecurityProtocolType.Tls11
|
||||||
|
| SecurityProtocolType.Tls12
|
||||||
|
| SecurityProtocolType.Tls13;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
|
||||||
|
| SecurityProtocolType.Tls
|
||||||
|
| SecurityProtocolType.Tls11
|
||||||
|
| SecurityProtocolType.Tls12;
|
||||||
|
}
|
||||||
ServicePointManager.DefaultConnectionLimit = 256;
|
ServicePointManager.DefaultConnectionLimit = 256;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool PortInUse(int port)
|
||||||
|
{
|
||||||
|
bool inUse = false;
|
||||||
|
|
||||||
|
IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
|
||||||
|
IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners();
|
||||||
|
|
||||||
|
var lstIpEndPoints = new List<IPEndPoint>(IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpListeners());
|
||||||
|
|
||||||
|
foreach (IPEndPoint endPoint in ipEndPoints)
|
||||||
|
{
|
||||||
|
if (endPoint.Port == port)
|
||||||
|
{
|
||||||
|
inUse = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return inUse;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 杂项
|
#region 杂项
|
||||||
@@ -728,8 +773,9 @@ namespace v2rayN
|
|||||||
FileVersionInfo.GetVersionInfo(location).FileVersion.ToString(),
|
FileVersionInfo.GetVersionInfo(location).FileVersion.ToString(),
|
||||||
File.GetLastWriteTime(location).ToString("yyyy/MM/dd"));
|
File.GetLastWriteTime(location).ToString("yyyy/MM/dd"));
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -766,14 +812,15 @@ namespace v2rayN
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
IDataObject data = Clipboard.GetDataObject();
|
IDataObject data = Clipboard.GetDataObject();
|
||||||
if (data.GetDataPresent(DataFormats.Text))
|
if (data.GetDataPresent(DataFormats.UnicodeText))
|
||||||
{
|
{
|
||||||
strData = data.GetData(DataFormats.Text).ToString();
|
strData = data.GetData(DataFormats.UnicodeText).ToString();
|
||||||
}
|
}
|
||||||
return strData;
|
return strData;
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
return strData;
|
return strData;
|
||||||
}
|
}
|
||||||
@@ -797,14 +844,22 @@ namespace v2rayN
|
|||||||
/// 取得GUID
|
/// 取得GUID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string GetGUID()
|
public static string GetGUID(bool full = true)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return Guid.NewGuid().ToString("D");
|
if (full)
|
||||||
|
{
|
||||||
|
return Guid.NewGuid().ToString("D");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return BitConverter.ToInt64(Guid.NewGuid().ToByteArray(), 0).ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
@@ -822,8 +877,9 @@ namespace v2rayN
|
|||||||
//WindowsBuiltInRole可以枚举出很多权限,例如系统用户、User、Guest等等
|
//WindowsBuiltInRole可以枚举出很多权限,例如系统用户、User、Guest等等
|
||||||
return windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator);
|
return windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator);
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -832,6 +888,14 @@ namespace v2rayN
|
|||||||
{
|
{
|
||||||
i.SubItems.Add(new ListViewItem.ListViewSubItem() { Name = name, Text = text });
|
i.SubItems.Add(new ListViewItem.ListViewSubItem() { Name = name, Text = text });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetDownloadFileName(string url)
|
||||||
|
{
|
||||||
|
var fileName = System.IO.Path.GetFileName(url);
|
||||||
|
fileName += "_temp";
|
||||||
|
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region TempPath
|
#region TempPath
|
||||||
@@ -870,37 +934,14 @@ namespace v2rayN
|
|||||||
|
|
||||||
public static void SaveLog(string strContent)
|
public static void SaveLog(string strContent)
|
||||||
{
|
{
|
||||||
SaveLog("info", new Exception(strContent));
|
var logger = LogManager.GetLogger("Log1");
|
||||||
|
logger.Info(strContent);
|
||||||
}
|
}
|
||||||
public static void SaveLog(string strTitle, Exception ex)
|
public static void SaveLog(string strTitle, Exception ex)
|
||||||
{
|
{
|
||||||
try
|
var logger = LogManager.GetLogger("Log2");
|
||||||
{
|
logger.Debug(strTitle);
|
||||||
string path = Path.Combine(StartupPath(), "guiLogs");
|
logger.Debug(ex);
|
||||||
string FilePath = Path.Combine(path, DateTime.Now.ToString("yyyyMMdd") + ".txt");
|
|
||||||
if (!Directory.Exists(path))
|
|
||||||
{
|
|
||||||
Directory.CreateDirectory(path);
|
|
||||||
}
|
|
||||||
if (!File.Exists(FilePath))
|
|
||||||
{
|
|
||||||
FileStream FsCreate = new FileStream(FilePath, FileMode.Create);
|
|
||||||
FsCreate.Close();
|
|
||||||
FsCreate.Dispose();
|
|
||||||
}
|
|
||||||
FileStream FsWrite = new FileStream(FilePath, FileMode.Append, FileAccess.Write);
|
|
||||||
StreamWriter SwWrite = new StreamWriter(FsWrite);
|
|
||||||
|
|
||||||
string strContent = ex.ToString();
|
|
||||||
|
|
||||||
SwWrite.WriteLine(string.Format("{0}{1}[{2}]{3}", "--------------------------------", strTitle, DateTime.Now.ToString("HH:mm:ss"), "--------------------------------"));
|
|
||||||
SwWrite.Write(strContent);
|
|
||||||
SwWrite.WriteLine(Environment.NewLine);
|
|
||||||
SwWrite.WriteLine(" ");
|
|
||||||
SwWrite.Flush();
|
|
||||||
SwWrite.Close();
|
|
||||||
}
|
|
||||||
catch { }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -954,7 +995,10 @@ namespace v2rayN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
SaveLog(ex.Message, ex);
|
||||||
|
}
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
|
||||||
</startup>
|
</startup>
|
||||||
|
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>v2rayN</RootNamespace>
|
<RootNamespace>v2rayN</RootNamespace>
|
||||||
<AssemblyName>v2rayN</AssemblyName>
|
<AssemblyName>v2rayN</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
@@ -125,6 +125,12 @@
|
|||||||
<Compile Include="Forms\BaseServerForm.Designer.cs">
|
<Compile Include="Forms\BaseServerForm.Designer.cs">
|
||||||
<DependentUpon>BaseServerForm.cs</DependentUpon>
|
<DependentUpon>BaseServerForm.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Forms\MsgFilterSetForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\MsgFilterSetForm.Designer.cs">
|
||||||
|
<DependentUpon>MsgFilterSetForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Forms\RoutingRuleSettingDetailsForm.cs">
|
<Compile Include="Forms\RoutingRuleSettingDetailsForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -137,7 +143,14 @@
|
|||||||
<Compile Include="Forms\RoutingRuleSettingForm.Designer.cs">
|
<Compile Include="Forms\RoutingRuleSettingForm.Designer.cs">
|
||||||
<DependentUpon>RoutingRuleSettingForm.cs</DependentUpon>
|
<DependentUpon>RoutingRuleSettingForm.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Forms\ServerTransportControl.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\ServerTransportControl.Designer.cs">
|
||||||
|
<DependentUpon>ServerTransportControl.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Handler\ShareHandler.cs" />
|
<Compile Include="Handler\ShareHandler.cs" />
|
||||||
|
<Compile Include="Handler\UpdateHandle.cs" />
|
||||||
<Compile Include="Mode\ComboItem.cs" />
|
<Compile Include="Mode\ComboItem.cs" />
|
||||||
<Compile Include="Forms\MainForm.cs">
|
<Compile Include="Forms\MainForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
@@ -201,6 +214,7 @@
|
|||||||
<Compile Include="Mode\ServerStatistics.cs" />
|
<Compile Include="Mode\ServerStatistics.cs" />
|
||||||
<Compile Include="Mode\SysproxyConfig.cs" />
|
<Compile Include="Mode\SysproxyConfig.cs" />
|
||||||
<Compile Include="Mode\EConfigType.cs" />
|
<Compile Include="Mode\EConfigType.cs" />
|
||||||
|
<Compile Include="Mode\ServerTestItem.cs" />
|
||||||
<Compile Include="Properties\Resources.Designer.cs">
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
@@ -249,6 +263,7 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Tool\FileManager.cs" />
|
<Compile Include="Tool\FileManager.cs" />
|
||||||
<Compile Include="Tool\Job.cs" />
|
<Compile Include="Tool\Job.cs" />
|
||||||
|
<Compile Include="Tool\Logging.cs" />
|
||||||
<Compile Include="Tool\QueryableExtension.cs" />
|
<Compile Include="Tool\QueryableExtension.cs" />
|
||||||
<Compile Include="Tool\UIRes.cs" />
|
<Compile Include="Tool\UIRes.cs" />
|
||||||
<Compile Include="Tool\UI.cs" />
|
<Compile Include="Tool\UI.cs" />
|
||||||
@@ -301,6 +316,12 @@
|
|||||||
<DependentUpon>MainForm.cs</DependentUpon>
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\MsgFilterSetForm.resx">
|
||||||
|
<DependentUpon>MsgFilterSetForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\MsgFilterSetForm.zh-Hans.resx">
|
||||||
|
<DependentUpon>MsgFilterSetForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Forms\OptionSettingForm.zh-Hans.resx">
|
<EmbeddedResource Include="Forms\OptionSettingForm.zh-Hans.resx">
|
||||||
<DependentUpon>OptionSettingForm.cs</DependentUpon>
|
<DependentUpon>OptionSettingForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
@@ -323,6 +344,12 @@
|
|||||||
<EmbeddedResource Include="Forms\RoutingRuleSettingForm.zh-Hans.resx">
|
<EmbeddedResource Include="Forms\RoutingRuleSettingForm.zh-Hans.resx">
|
||||||
<DependentUpon>RoutingRuleSettingForm.cs</DependentUpon>
|
<DependentUpon>RoutingRuleSettingForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\ServerTransportControl.resx">
|
||||||
|
<DependentUpon>ServerTransportControl.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\ServerTransportControl.zh-Hans.resx">
|
||||||
|
<DependentUpon>ServerTransportControl.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Forms\SubSettingControl.resx">
|
<EmbeddedResource Include="Forms\SubSettingControl.resx">
|
||||||
<DependentUpon>SubSettingControl.cs</DependentUpon>
|
<DependentUpon>SubSettingControl.cs</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
@@ -389,6 +416,7 @@
|
|||||||
<EmbeddedResource Include="Sample\custom_routing_white" />
|
<EmbeddedResource Include="Sample\custom_routing_white" />
|
||||||
<EmbeddedResource Include="Sample\custom_routing_global" />
|
<EmbeddedResource Include="Sample\custom_routing_global" />
|
||||||
<EmbeddedResource Include="Sample\custom_routing_locked" />
|
<EmbeddedResource Include="Sample\custom_routing_locked" />
|
||||||
|
<EmbeddedResource Include="Sample\custom_routing_black" />
|
||||||
<Protobuf Include="Protos\Statistics.proto" />
|
<Protobuf Include="Protos\Statistics.proto" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -460,21 +488,24 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Google.Protobuf">
|
<PackageReference Include="Google.Protobuf">
|
||||||
<Version>3.11.4</Version>
|
<Version>3.19.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Grpc.Core">
|
<PackageReference Include="Grpc.Core">
|
||||||
<Version>2.27.0</Version>
|
<Version>2.42.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Grpc.Tools">
|
<PackageReference Include="Grpc.Tools">
|
||||||
<Version>2.27.0</Version>
|
<Version>2.42.0</Version>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
|
<PackageReference Include="log4net">
|
||||||
|
<Version>2.0.14</Version>
|
||||||
|
</PackageReference>
|
||||||
<PackageReference Include="Newtonsoft.Json">
|
<PackageReference Include="Newtonsoft.Json">
|
||||||
<Version>12.0.3</Version>
|
<Version>13.0.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="ZXing.Net">
|
<PackageReference Include="ZXing.Net">
|
||||||
<Version>0.16.5</Version>
|
<Version>0.16.7</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
|
||||||
</startup>
|
</startup>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Diagnostics;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.IO.Compression;
|
using System.IO.Compression;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Web;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace v2rayUpgrade
|
namespace v2rayUpgrade
|
||||||
@@ -17,7 +18,8 @@ namespace v2rayUpgrade
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
if (args.Length > 0)
|
if (args.Length > 0)
|
||||||
{
|
{
|
||||||
fileName = args[0];
|
fileName = string.Join(" ", args);
|
||||||
|
fileName = HttpUtility.UrlDecode(fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void showWarn(string message)
|
private void showWarn(string message)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace v2rayUpgrade.Properties {
|
|||||||
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||||
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||||
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class Resources {
|
internal class Resources {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace v2rayUpgrade.Properties {
|
|||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<RootNamespace>v2rayUpgrade</RootNamespace>
|
<RootNamespace>v2rayUpgrade</RootNamespace>
|
||||||
<AssemblyName>v2rayUpgrade</AssemblyName>
|
<AssemblyName>v2rayUpgrade</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
<Deterministic>true</Deterministic>
|
<Deterministic>true</Deterministic>
|
||||||
@@ -39,6 +39,7 @@
|
|||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.IO.Compression" />
|
<Reference Include="System.IO.Compression" />
|
||||||
<Reference Include="System.IO.Compression.FileSystem" />
|
<Reference Include="System.IO.Compression.FileSystem" />
|
||||||
|
<Reference Include="System.Web" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||||
<StartArguments>D:\Github\v2rayN\v2rayN\v2rayUpgrade\bin\Debug\v2ray-windows.zip</StartArguments>
|
<StartArguments>C:\Githubb\v2rayN\v2rayN\v2rayUpgrade\bin\Debug\v2ray-windows.zip</StartArguments>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
Reference in New Issue
Block a user