diff --git a/v2rayN/v2rayN/Forms/AddServer2Form.Designer.cs b/v2rayN/v2rayN/Forms/AddServer2Form.Designer.cs
index 312658e5..88808170 100644
--- a/v2rayN/v2rayN/Forms/AddServer2Form.Designer.cs
+++ b/v2rayN/v2rayN/Forms/AddServer2Form.Designer.cs
@@ -40,6 +40,8 @@
this.panel2 = new System.Windows.Forms.Panel();
this.btnOK = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
+ this.cmbCoreType = new System.Windows.Forms.ComboBox();
+ this.labCoreType = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
this.panel2.SuspendLayout();
this.SuspendLayout();
@@ -54,6 +56,8 @@
//
// groupBox1
//
+ this.groupBox1.Controls.Add(this.cmbCoreType);
+ this.groupBox1.Controls.Add(this.labCoreType);
this.groupBox1.Controls.Add(this.btnBrowse);
this.groupBox1.Controls.Add(this.txtAddress);
this.groupBox1.Controls.Add(this.label13);
@@ -115,6 +119,18 @@
resources.ApplyResources(this.panel1, "panel1");
this.panel1.Name = "panel1";
//
+ // cmbCoreType
+ //
+ this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbCoreType.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbCoreType, "cmbCoreType");
+ this.cmbCoreType.Name = "cmbCoreType";
+ //
+ // labCoreType
+ //
+ resources.ApplyResources(this.labCoreType, "labCoreType");
+ this.labCoreType.Name = "labCoreType";
+ //
// AddServer2Form
//
resources.ApplyResources(this, "$this");
@@ -146,5 +162,7 @@
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txtAddress;
private System.Windows.Forms.Button btnBrowse;
+ private System.Windows.Forms.ComboBox cmbCoreType;
+ private System.Windows.Forms.Label labCoreType;
}
}
\ No newline at end of file
diff --git a/v2rayN/v2rayN/Forms/AddServer2Form.cs b/v2rayN/v2rayN/Forms/AddServer2Form.cs
index 38145096..7e7a28fb 100644
--- a/v2rayN/v2rayN/Forms/AddServer2Form.cs
+++ b/v2rayN/v2rayN/Forms/AddServer2Form.cs
@@ -15,6 +15,9 @@ namespace v2rayN.Forms
private void AddServer2Form_Load(object sender, EventArgs e)
{
+ cmbCoreType.Items.AddRange(Global.coreTypes.ToArray());
+ cmbCoreType.Items.Add(string.Empty);
+
txtAddress.ReadOnly = true;
if (vmessItem != null)
{
@@ -35,6 +38,15 @@ namespace v2rayN.Forms
{
txtRemarks.Text = vmessItem.remarks;
txtAddress.Text = vmessItem.address;
+
+ if (vmessItem.coreType == null)
+ {
+ cmbCoreType.Text = string.Empty;
+ }
+ else
+ {
+ cmbCoreType.Text = vmessItem.coreType.ToString();
+ }
}
@@ -55,6 +67,14 @@ namespace v2rayN.Forms
return;
}
vmessItem.remarks = remarks;
+ if (Utils.IsNullOrEmpty(cmbCoreType.Text))
+ {
+ vmessItem.coreType = null;
+ }
+ else
+ {
+ vmessItem.coreType = (ECoreType)Enum.Parse(typeof(ECoreType), cmbCoreType.Text);
+ }
if (ConfigHandler.EditCustomServer(ref config, vmessItem) == 0)
{
diff --git a/v2rayN/v2rayN/Forms/AddServer2Form.resx b/v2rayN/v2rayN/Forms/AddServer2Form.resx
index c6c7ec13..726f0cae 100644
--- a/v2rayN/v2rayN/Forms/AddServer2Form.resx
+++ b/v2rayN/v2rayN/Forms/AddServer2Form.resx
@@ -143,12 +143,63 @@
0
+
+ 127, 157
+
+
+ 89, 20
+
+
+ 41
+
+
+ cmbCoreType
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 0
+
+
+ True
+
+
+ NoControl
+
+
+ 12, 161
+
+
+ 59, 12
+
+
+ 42
+
+
+ Core Type
+
+
+ labCoreType
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 1
+
NoControl
- 127, 121
+ 127, 110
75, 23
@@ -169,7 +220,7 @@
groupBox1
- 0
+ 2
127, 62
@@ -193,7 +244,7 @@
groupBox1
- 1
+ 3
True
@@ -220,7 +271,7 @@
groupBox1
- 2
+ 4
127, 23
@@ -241,7 +292,7 @@
groupBox1
- 3
+ 5
True
@@ -268,7 +319,7 @@
groupBox1
- 4
+ 6
True
@@ -295,7 +346,7 @@
groupBox1
- 5
+ 7
Fill
@@ -406,7 +457,7 @@
611, 259
- Edit custom configuration server
+ Custom configuration server
AddServer2Form
diff --git a/v2rayN/v2rayN/Forms/AddServer2Form.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServer2Form.zh-Hans.resx
index 482593c4..232e5b76 100644
--- a/v2rayN/v2rayN/Forms/AddServer2Form.zh-Hans.resx
+++ b/v2rayN/v2rayN/Forms/AddServer2Form.zh-Hans.resx
@@ -118,7 +118,10 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- 编辑自定义配置服务器
+ 自定义配置
+
+
+ 浏览(&B)
取消(&C)
@@ -129,6 +132,9 @@
服务器
+
+ Core类型
+
地址(address)
diff --git a/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs b/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
index c48ec522..33aa7ade 100644
--- a/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
+++ b/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
@@ -31,36 +31,62 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddServerForm));
this.btnClose = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.btnGUID = new System.Windows.Forms.Button();
- this.label13 = new System.Windows.Forms.Label();
- this.label8 = new System.Windows.Forms.Label();
- this.cmbSecurity = new System.Windows.Forms.ComboBox();
- this.txtRemarks = new System.Windows.Forms.TextBox();
- this.label6 = new System.Windows.Forms.Label();
- this.label5 = new System.Windows.Forms.Label();
- this.txtAlterId = new System.Windows.Forms.TextBox();
- this.label4 = new System.Windows.Forms.Label();
- this.txtId = new System.Windows.Forms.TextBox();
+ this.panSocks = new System.Windows.Forms.Panel();
+ this.label17 = new System.Windows.Forms.Label();
+ this.txtSecurity4 = new System.Windows.Forms.TextBox();
+ this.label18 = new System.Windows.Forms.Label();
+ this.txtId4 = new System.Windows.Forms.TextBox();
+ this.panSs = new System.Windows.Forms.Panel();
+ this.txtId3 = new System.Windows.Forms.TextBox();
+ this.label15 = new System.Windows.Forms.Label();
+ this.cmbSecurity3 = new System.Windows.Forms.ComboBox();
+ this.label16 = new System.Windows.Forms.Label();
+ this.panTrojan = new System.Windows.Forms.Panel();
+ this.label12 = new System.Windows.Forms.Label();
+ this.cmbFlow6 = new System.Windows.Forms.ComboBox();
+ this.txtId6 = new System.Windows.Forms.TextBox();
+ this.label14 = new System.Windows.Forms.Label();
+ this.panVless = new System.Windows.Forms.Panel();
+ this.label7 = new System.Windows.Forms.Label();
+ this.cmbFlow5 = new System.Windows.Forms.ComboBox();
+ this.txtId5 = new System.Windows.Forms.TextBox();
+ this.label9 = new System.Windows.Forms.Label();
+ this.label10 = new System.Windows.Forms.Label();
+ this.btnGUID5 = new System.Windows.Forms.Button();
+ this.cmbSecurity5 = new System.Windows.Forms.ComboBox();
+ this.label11 = new System.Windows.Forms.Label();
+ this.panVmess = new System.Windows.Forms.Panel();
this.label3 = new System.Windows.Forms.Label();
- this.txtPort = new System.Windows.Forms.TextBox();
- this.label2 = new System.Windows.Forms.Label();
- this.txtAddress = new System.Windows.Forms.TextBox();
+ this.txtId = new System.Windows.Forms.TextBox();
+ this.btnGUID = new System.Windows.Forms.Button();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label8 = new System.Windows.Forms.Label();
+ this.txtAlterId = new System.Windows.Forms.TextBox();
+ this.cmbSecurity = new System.Windows.Forms.ComboBox();
+ this.label5 = new System.Windows.Forms.Label();
+ this.panAddr = new System.Windows.Forms.Panel();
+ this.label6 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
- this.panel2 = new System.Windows.Forms.Panel();
+ this.txtAddress = new System.Windows.Forms.TextBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.txtPort = new System.Windows.Forms.TextBox();
+ this.txtRemarks = new System.Windows.Forms.TextBox();
+ this.panBottom = new System.Windows.Forms.Panel();
this.btnOK = new System.Windows.Forms.Button();
- this.panel1 = new System.Windows.Forms.Panel();
- this.menuServer = new System.Windows.Forms.MenuStrip();
- this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- 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.panel3 = new System.Windows.Forms.Panel();
+ this.panTop = new System.Windows.Forms.Panel();
+ this.panTran = new System.Windows.Forms.Panel();
this.transportControl = new v2rayN.Forms.ServerTransportControl();
+ this.cmbCoreType = new System.Windows.Forms.ComboBox();
+ this.labCoreType = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
- this.panel2.SuspendLayout();
- this.menuServer.SuspendLayout();
- this.panel3.SuspendLayout();
+ this.panSocks.SuspendLayout();
+ this.panSs.SuspendLayout();
+ this.panTrojan.SuspendLayout();
+ this.panVless.SuspendLayout();
+ this.panVmess.SuspendLayout();
+ this.panAddr.SuspendLayout();
+ this.panBottom.SuspendLayout();
+ this.panTran.SuspendLayout();
this.SuspendLayout();
//
// btnClose
@@ -73,25 +99,189 @@
//
// groupBox1
//
- this.groupBox1.Controls.Add(this.btnGUID);
- this.groupBox1.Controls.Add(this.label13);
- this.groupBox1.Controls.Add(this.label8);
- this.groupBox1.Controls.Add(this.cmbSecurity);
- this.groupBox1.Controls.Add(this.txtRemarks);
- this.groupBox1.Controls.Add(this.label6);
- this.groupBox1.Controls.Add(this.label5);
- this.groupBox1.Controls.Add(this.txtAlterId);
- this.groupBox1.Controls.Add(this.label4);
- this.groupBox1.Controls.Add(this.txtId);
- this.groupBox1.Controls.Add(this.label3);
- this.groupBox1.Controls.Add(this.txtPort);
- this.groupBox1.Controls.Add(this.label2);
- this.groupBox1.Controls.Add(this.txtAddress);
- this.groupBox1.Controls.Add(this.label1);
+ this.groupBox1.Controls.Add(this.panSocks);
+ this.groupBox1.Controls.Add(this.panSs);
+ this.groupBox1.Controls.Add(this.panTrojan);
+ this.groupBox1.Controls.Add(this.panVless);
+ this.groupBox1.Controls.Add(this.panVmess);
+ this.groupBox1.Controls.Add(this.panAddr);
resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false;
//
+ // panSocks
+ //
+ this.panSocks.Controls.Add(this.label17);
+ this.panSocks.Controls.Add(this.txtSecurity4);
+ this.panSocks.Controls.Add(this.label18);
+ this.panSocks.Controls.Add(this.txtId4);
+ resources.ApplyResources(this.panSocks, "panSocks");
+ this.panSocks.Name = "panSocks";
+ //
+ // label17
+ //
+ resources.ApplyResources(this.label17, "label17");
+ this.label17.Name = "label17";
+ //
+ // txtSecurity4
+ //
+ resources.ApplyResources(this.txtSecurity4, "txtSecurity4");
+ this.txtSecurity4.Name = "txtSecurity4";
+ //
+ // label18
+ //
+ resources.ApplyResources(this.label18, "label18");
+ this.label18.Name = "label18";
+ //
+ // txtId4
+ //
+ resources.ApplyResources(this.txtId4, "txtId4");
+ this.txtId4.Name = "txtId4";
+ //
+ // panSs
+ //
+ this.panSs.Controls.Add(this.txtId3);
+ this.panSs.Controls.Add(this.label15);
+ this.panSs.Controls.Add(this.cmbSecurity3);
+ this.panSs.Controls.Add(this.label16);
+ resources.ApplyResources(this.panSs, "panSs");
+ this.panSs.Name = "panSs";
+ //
+ // txtId3
+ //
+ resources.ApplyResources(this.txtId3, "txtId3");
+ this.txtId3.Name = "txtId3";
+ //
+ // label15
+ //
+ resources.ApplyResources(this.label15, "label15");
+ this.label15.Name = "label15";
+ //
+ // cmbSecurity3
+ //
+ this.cmbSecurity3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbSecurity3.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbSecurity3, "cmbSecurity3");
+ this.cmbSecurity3.Name = "cmbSecurity3";
+ //
+ // label16
+ //
+ resources.ApplyResources(this.label16, "label16");
+ this.label16.Name = "label16";
+ //
+ // panTrojan
+ //
+ this.panTrojan.Controls.Add(this.label12);
+ this.panTrojan.Controls.Add(this.cmbFlow6);
+ this.panTrojan.Controls.Add(this.txtId6);
+ this.panTrojan.Controls.Add(this.label14);
+ resources.ApplyResources(this.panTrojan, "panTrojan");
+ this.panTrojan.Name = "panTrojan";
+ //
+ // label12
+ //
+ resources.ApplyResources(this.label12, "label12");
+ this.label12.Name = "label12";
+ //
+ // cmbFlow6
+ //
+ this.cmbFlow6.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbFlow6, "cmbFlow6");
+ this.cmbFlow6.Name = "cmbFlow6";
+ //
+ // txtId6
+ //
+ resources.ApplyResources(this.txtId6, "txtId6");
+ this.txtId6.Name = "txtId6";
+ //
+ // label14
+ //
+ resources.ApplyResources(this.label14, "label14");
+ this.label14.Name = "label14";
+ //
+ // panVless
+ //
+ this.panVless.Controls.Add(this.label7);
+ this.panVless.Controls.Add(this.cmbFlow5);
+ this.panVless.Controls.Add(this.txtId5);
+ this.panVless.Controls.Add(this.label9);
+ this.panVless.Controls.Add(this.label10);
+ this.panVless.Controls.Add(this.btnGUID5);
+ this.panVless.Controls.Add(this.cmbSecurity5);
+ this.panVless.Controls.Add(this.label11);
+ resources.ApplyResources(this.panVless, "panVless");
+ this.panVless.Name = "panVless";
+ //
+ // label7
+ //
+ resources.ApplyResources(this.label7, "label7");
+ this.label7.Name = "label7";
+ //
+ // cmbFlow5
+ //
+ this.cmbFlow5.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbFlow5, "cmbFlow5");
+ this.cmbFlow5.Name = "cmbFlow5";
+ //
+ // txtId5
+ //
+ resources.ApplyResources(this.txtId5, "txtId5");
+ this.txtId5.Name = "txtId5";
+ //
+ // label9
+ //
+ resources.ApplyResources(this.label9, "label9");
+ this.label9.Name = "label9";
+ //
+ // label10
+ //
+ resources.ApplyResources(this.label10, "label10");
+ this.label10.Name = "label10";
+ //
+ // btnGUID5
+ //
+ resources.ApplyResources(this.btnGUID5, "btnGUID5");
+ this.btnGUID5.Name = "btnGUID5";
+ this.btnGUID5.UseVisualStyleBackColor = true;
+ this.btnGUID5.Click += new System.EventHandler(this.btnGUID_Click);
+ //
+ // cmbSecurity5
+ //
+ this.cmbSecurity5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.Simple;
+ this.cmbSecurity5.FormattingEnabled = true;
+ this.cmbSecurity5.Items.AddRange(new object[] {
+ resources.GetString("cmbSecurity5.Items")});
+ resources.ApplyResources(this.cmbSecurity5, "cmbSecurity5");
+ this.cmbSecurity5.Name = "cmbSecurity5";
+ //
+ // label11
+ //
+ resources.ApplyResources(this.label11, "label11");
+ this.label11.Name = "label11";
+ //
+ // panVmess
+ //
+ this.panVmess.Controls.Add(this.label3);
+ this.panVmess.Controls.Add(this.txtId);
+ this.panVmess.Controls.Add(this.btnGUID);
+ this.panVmess.Controls.Add(this.label4);
+ this.panVmess.Controls.Add(this.label8);
+ this.panVmess.Controls.Add(this.txtAlterId);
+ this.panVmess.Controls.Add(this.cmbSecurity);
+ this.panVmess.Controls.Add(this.label5);
+ resources.ApplyResources(this.panVmess, "panVmess");
+ this.panVmess.Name = "panVmess";
+ //
+ // label3
+ //
+ resources.ApplyResources(this.label3, "label3");
+ this.label3.Name = "label3";
+ //
+ // txtId
+ //
+ resources.ApplyResources(this.txtId, "txtId");
+ this.txtId.Name = "txtId";
+ //
// btnGUID
//
resources.ApplyResources(this.btnGUID, "btnGUID");
@@ -99,16 +289,21 @@
this.btnGUID.UseVisualStyleBackColor = true;
this.btnGUID.Click += new System.EventHandler(this.btnGUID_Click);
//
- // label13
+ // label4
//
- resources.ApplyResources(this.label13, "label13");
- this.label13.Name = "label13";
+ resources.ApplyResources(this.label4, "label4");
+ this.label4.Name = "label4";
//
// label8
//
resources.ApplyResources(this.label8, "label8");
this.label8.Name = "label8";
//
+ // txtAlterId
+ //
+ resources.ApplyResources(this.txtAlterId, "txtAlterId");
+ this.txtAlterId.Name = "txtAlterId";
+ //
// cmbSecurity
//
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
@@ -116,67 +311,60 @@
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
this.cmbSecurity.Name = "cmbSecurity";
//
- // txtRemarks
+ // label5
//
- resources.ApplyResources(this.txtRemarks, "txtRemarks");
- this.txtRemarks.Name = "txtRemarks";
+ resources.ApplyResources(this.label5, "label5");
+ this.label5.Name = "label5";
+ //
+ // panAddr
+ //
+ this.panAddr.Controls.Add(this.cmbCoreType);
+ this.panAddr.Controls.Add(this.labCoreType);
+ this.panAddr.Controls.Add(this.label6);
+ this.panAddr.Controls.Add(this.label1);
+ this.panAddr.Controls.Add(this.txtAddress);
+ this.panAddr.Controls.Add(this.label2);
+ this.panAddr.Controls.Add(this.txtPort);
+ this.panAddr.Controls.Add(this.txtRemarks);
+ resources.ApplyResources(this.panAddr, "panAddr");
+ this.panAddr.Name = "panAddr";
//
// label6
//
resources.ApplyResources(this.label6, "label6");
this.label6.Name = "label6";
//
- // label5
+ // label1
//
- resources.ApplyResources(this.label5, "label5");
- this.label5.Name = "label5";
- //
- // txtAlterId
- //
- resources.ApplyResources(this.txtAlterId, "txtAlterId");
- this.txtAlterId.Name = "txtAlterId";
- //
- // label4
- //
- resources.ApplyResources(this.label4, "label4");
- this.label4.Name = "label4";
- //
- // txtId
- //
- resources.ApplyResources(this.txtId, "txtId");
- this.txtId.Name = "txtId";
- //
- // label3
- //
- resources.ApplyResources(this.label3, "label3");
- this.label3.Name = "label3";
- //
- // txtPort
- //
- resources.ApplyResources(this.txtPort, "txtPort");
- this.txtPort.Name = "txtPort";
- //
- // label2
- //
- resources.ApplyResources(this.label2, "label2");
- this.label2.Name = "label2";
+ resources.ApplyResources(this.label1, "label1");
+ this.label1.Name = "label1";
//
// txtAddress
//
resources.ApplyResources(this.txtAddress, "txtAddress");
this.txtAddress.Name = "txtAddress";
//
- // label1
+ // label2
//
- resources.ApplyResources(this.label1, "label1");
- this.label1.Name = "label1";
+ resources.ApplyResources(this.label2, "label2");
+ this.label2.Name = "label2";
//
- // panel2
+ // txtPort
//
- this.panel2.Controls.Add(this.btnClose);
- this.panel2.Controls.Add(this.btnOK);
- resources.ApplyResources(this.panel2, "panel2");
- this.panel2.Name = "panel2";
+ resources.ApplyResources(this.txtPort, "txtPort");
+ this.txtPort.Name = "txtPort";
+ //
+ // txtRemarks
+ //
+ resources.ApplyResources(this.txtRemarks, "txtRemarks");
+ this.txtRemarks.Name = "txtRemarks";
+ //
+ // panBottom
+ //
+ this.panBottom.Controls.Add(this.btnClose);
+ this.panBottom.Controls.Add(this.btnOK);
+ resources.ApplyResources(this.panBottom, "panBottom");
+ this.panBottom.Name = "panBottom";
//
// btnOK
//
@@ -185,56 +373,16 @@
this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
//
- // panel1
+ // panTop
//
- resources.ApplyResources(this.panel1, "panel1");
- this.panel1.Name = "panel1";
+ resources.ApplyResources(this.panTop, "panTop");
+ this.panTop.Name = "panTop";
//
- // menuServer
+ // panTran
//
- 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.MenuItemImportClient,
- this.MenuItemImportServer,
- 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);
- //
- // panel3
- //
- this.panel3.Controls.Add(this.transportControl);
- resources.ApplyResources(this.panel3, "panel3");
- this.panel3.Name = "panel3";
+ this.panTran.Controls.Add(this.transportControl);
+ resources.ApplyResources(this.panTran, "panTran");
+ this.panTran.Name = "panTran";
//
// transportControl
//
@@ -242,27 +390,46 @@
resources.ApplyResources(this.transportControl, "transportControl");
this.transportControl.Name = "transportControl";
//
+ // cmbCoreType
+ //
+ this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbCoreType.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbCoreType, "cmbCoreType");
+ this.cmbCoreType.Name = "cmbCoreType";
+ //
+ // labCoreType
+ //
+ resources.ApplyResources(this.labCoreType, "labCoreType");
+ this.labCoreType.Name = "labCoreType";
+ //
// AddServerForm
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnClose;
this.Controls.Add(this.groupBox1);
- this.Controls.Add(this.panel3);
- this.Controls.Add(this.panel2);
- this.Controls.Add(this.panel1);
- this.Controls.Add(this.menuServer);
+ this.Controls.Add(this.panTran);
+ this.Controls.Add(this.panBottom);
+ this.Controls.Add(this.panTop);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Name = "AddServerForm";
this.Load += new System.EventHandler(this.AddServerForm_Load);
this.groupBox1.ResumeLayout(false);
- this.groupBox1.PerformLayout();
- this.panel2.ResumeLayout(false);
- this.menuServer.ResumeLayout(false);
- this.menuServer.PerformLayout();
- this.panel3.ResumeLayout(false);
+ this.panSocks.ResumeLayout(false);
+ this.panSocks.PerformLayout();
+ this.panSs.ResumeLayout(false);
+ this.panSs.PerformLayout();
+ this.panTrojan.ResumeLayout(false);
+ this.panTrojan.PerformLayout();
+ this.panVless.ResumeLayout(false);
+ this.panVless.PerformLayout();
+ this.panVmess.ResumeLayout(false);
+ this.panVmess.PerformLayout();
+ this.panAddr.ResumeLayout(false);
+ this.panAddr.PerformLayout();
+ this.panBottom.ResumeLayout(false);
+ this.panTran.ResumeLayout(false);
this.ResumeLayout(false);
- this.PerformLayout();
}
@@ -284,17 +451,38 @@
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox cmbSecurity;
private System.Windows.Forms.Label label8;
- private System.Windows.Forms.Panel panel1;
- private System.Windows.Forms.Panel panel2;
- 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.ToolStripSeparator toolStripSeparator1;
- private System.Windows.Forms.ToolStripMenuItem MenuItemImportClipboard;
+ private System.Windows.Forms.Panel panTop;
+ private System.Windows.Forms.Panel panBottom;
private System.Windows.Forms.Button btnGUID;
- private System.Windows.Forms.Panel panel3;
+ private System.Windows.Forms.Panel panTran;
private ServerTransportControl transportControl;
+ private System.Windows.Forms.Panel panAddr;
+ private System.Windows.Forms.Panel panVmess;
+ private System.Windows.Forms.Panel panVless;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.ComboBox cmbFlow5;
+ private System.Windows.Forms.TextBox txtId5;
+ private System.Windows.Forms.Label label9;
+ private System.Windows.Forms.Label label10;
+ private System.Windows.Forms.Button btnGUID5;
+ private System.Windows.Forms.ComboBox cmbSecurity5;
+ private System.Windows.Forms.Label label11;
+ private System.Windows.Forms.Panel panTrojan;
+ private System.Windows.Forms.Label label12;
+ private System.Windows.Forms.ComboBox cmbFlow6;
+ private System.Windows.Forms.TextBox txtId6;
+ private System.Windows.Forms.Label label14;
+ private System.Windows.Forms.Panel panSs;
+ private System.Windows.Forms.TextBox txtId3;
+ private System.Windows.Forms.Label label15;
+ private System.Windows.Forms.ComboBox cmbSecurity3;
+ private System.Windows.Forms.Label label16;
+ private System.Windows.Forms.Panel panSocks;
+ private System.Windows.Forms.Label label17;
+ private System.Windows.Forms.TextBox txtSecurity4;
+ private System.Windows.Forms.Label label18;
+ private System.Windows.Forms.TextBox txtId4;
+ private System.Windows.Forms.ComboBox cmbCoreType;
+ private System.Windows.Forms.Label labCoreType;
}
}
\ No newline at end of file
diff --git a/v2rayN/v2rayN/Forms/AddServerForm.cs b/v2rayN/v2rayN/Forms/AddServerForm.cs
index 44e58ee0..1f0c2722 100644
--- a/v2rayN/v2rayN/Forms/AddServerForm.cs
+++ b/v2rayN/v2rayN/Forms/AddServerForm.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Windows.Forms;
using v2rayN.Handler;
using v2rayN.Mode;
@@ -7,7 +8,6 @@ namespace v2rayN.Forms
{
public partial class AddServerForm : BaseServerForm
{
-
public AddServerForm()
{
InitializeComponent();
@@ -15,8 +15,46 @@ namespace v2rayN.Forms
private void AddServerForm_Load(object sender, EventArgs e)
{
+ this.Text = ((EConfigType)eConfigType).ToString();
+
cmbSecurity.Items.AddRange(Global.vmessSecuritys.ToArray());
- //FillCoreType(cmbCoreType);
+ cmbSecurity3.Items.AddRange(config.GetShadowsocksSecuritys().ToArray());
+
+ cmbFlow5.Items.AddRange(Global.xtlsFlows.ToArray());
+ cmbFlow6.Items.AddRange(Global.xtlsFlows.ToArray());
+
+ cmbCoreType.Items.AddRange(Global.coreTypes.ToArray());
+ cmbCoreType.Items.Add(string.Empty);
+
+ switch (eConfigType)
+ {
+ case EConfigType.Vmess:
+ panVmess.Dock = DockStyle.Fill;
+ panVmess.Visible = true;
+ break;
+ case EConfigType.Shadowsocks:
+ panSs.Dock = DockStyle.Fill;
+ panSs.Visible = true;
+ panTran.Visible = false;
+ this.Height = this.Height - panTran.Height;
+ break;
+ case EConfigType.Socks:
+ panSocks.Dock = DockStyle.Fill;
+ panSocks.Visible = true;
+ panTran.Visible = false;
+ this.Height = this.Height - panTran.Height;
+ break;
+ case EConfigType.VLESS:
+ panVless.Dock = DockStyle.Fill;
+ panVless.Visible = true;
+ transportControl.AllowXtls = true;
+ break;
+ case EConfigType.Trojan:
+ panTrojan.Dock = DockStyle.Fill;
+ panTrojan.Visible = true;
+ transportControl.AllowXtls = true;
+ break;
+ }
if (vmessItem != null)
{
@@ -35,41 +73,122 @@ namespace v2rayN.Forms
///
private void BindingServer()
{
+ txtRemarks.Text = vmessItem.remarks;
txtAddress.Text = vmessItem.address;
txtPort.Text = vmessItem.port.ToString();
- txtId.Text = vmessItem.id;
- txtAlterId.Text = vmessItem.alterId.ToString();
- cmbSecurity.Text = vmessItem.security;
- txtRemarks.Text = vmessItem.remarks;
- // BindingCoreType(cmbCoreType, vmessItem);
+
+ switch (eConfigType)
+ {
+ case EConfigType.Vmess:
+ txtId.Text = vmessItem.id;
+ txtAlterId.Text = vmessItem.alterId.ToString();
+ cmbSecurity.Text = vmessItem.security;
+ break;
+ case EConfigType.Shadowsocks:
+ txtId3.Text = vmessItem.id;
+ cmbSecurity3.Text = vmessItem.security;
+ break;
+ case EConfigType.Socks:
+ txtId4.Text = vmessItem.id;
+ txtSecurity4.Text = vmessItem.security;
+ break;
+ case EConfigType.VLESS:
+ txtId5.Text = vmessItem.id;
+ cmbFlow5.Text = vmessItem.flow;
+ cmbSecurity5.Text = vmessItem.security;
+ break;
+ case EConfigType.Trojan:
+ txtId6.Text = vmessItem.id;
+ cmbFlow6.Text = vmessItem.flow;
+ break;
+ }
+
+ if (vmessItem.coreType == null)
+ {
+ cmbCoreType.Text = string.Empty;
+ }
+ else
+ {
+ cmbCoreType.Text = vmessItem.coreType.ToString();
+ }
transportControl.BindingServer(vmessItem);
}
-
///
/// 清除设置
///
private void ClearServer()
{
+ txtRemarks.Text = "";
txtAddress.Text = "";
txtPort.Text = "";
- txtId.Text = "";
- txtAlterId.Text = "0";
- cmbSecurity.Text = Global.DefaultSecurity;
- txtRemarks.Text = "";
+
+ switch (eConfigType)
+ {
+ case EConfigType.Vmess:
+ txtId.Text = "";
+ txtAlterId.Text = "0";
+ cmbSecurity.Text = Global.DefaultSecurity;
+ break;
+ case EConfigType.Shadowsocks:
+ txtId3.Text = "";
+ cmbSecurity3.Text = Global.DefaultSecurity;
+ break;
+ case EConfigType.Socks:
+ txtId4.Text = "";
+ txtSecurity4.Text = "";
+ break;
+ case EConfigType.VLESS:
+ txtId5.Text = "";
+ cmbFlow5.Text = "";
+ cmbSecurity5.Text = Global.None;
+ break;
+ case EConfigType.Trojan:
+ txtId6.Text = "";
+ cmbFlow6.Text = "";
+ break;
+ }
transportControl.ClearServer(vmessItem);
}
private void btnOK_Click(object sender, EventArgs e)
{
+ string remarks = txtRemarks.Text;
string address = txtAddress.Text;
string port = txtPort.Text;
- string id = txtId.Text;
- string alterId = txtAlterId.Text;
- string security = cmbSecurity.Text;
- string remarks = txtRemarks.Text;
+
+ string id = string.Empty;
+ string alterId = string.Empty;
+ string security = string.Empty;
+ string flow = string.Empty;
+
+ switch (eConfigType)
+ {
+ case EConfigType.Vmess:
+ id = txtId.Text;
+ alterId = txtAlterId.Text;
+ security = cmbSecurity.Text;
+ break;
+ case EConfigType.Shadowsocks:
+ id = txtId3.Text;
+ security = cmbSecurity3.Text;
+ break;
+ case EConfigType.Socks:
+ id = txtId4.Text;
+ security = txtSecurity4.Text;
+ break;
+ case EConfigType.VLESS:
+ id = txtId5.Text;
+ flow = cmbFlow5.Text;
+ security = cmbSecurity5.Text;
+ break;
+ case EConfigType.Trojan:
+ id = txtId6.Text;
+ flow = cmbFlow6.Text;
+ break;
+ }
if (Utils.IsNullOrEmpty(address))
{
@@ -81,23 +200,69 @@ namespace v2rayN.Forms
UI.Show(UIRes.I18N("FillCorrectServerPort"));
return;
}
- if (Utils.IsNullOrEmpty(id))
+ if (eConfigType == EConfigType.Shadowsocks)
{
- UI.Show(UIRes.I18N("FillUUID"));
- return;
+ if (Utils.IsNullOrEmpty(id))
+ {
+ UI.Show(UIRes.I18N("FillPassword"));
+ return;
+ }
+ if (Utils.IsNullOrEmpty(security))
+ {
+ UI.Show(UIRes.I18N("PleaseSelectEncryption"));
+ return;
+ }
+ }
+ if (eConfigType != EConfigType.Socks)
+ {
+ if (Utils.IsNullOrEmpty(id))
+ {
+ UI.Show(UIRes.I18N("FillUUID"));
+ return;
+ }
}
transportControl.EndBindingServer();
+ vmessItem.remarks = remarks;
vmessItem.address = address;
vmessItem.port = Utils.ToInt(port);
vmessItem.id = id;
vmessItem.alterId = Utils.ToInt(alterId);
vmessItem.security = security;
- vmessItem.remarks = remarks;
- //vmessItem.coreType = GetCoreType(cmbCoreType);
- if (ConfigHandler.AddServer(ref config, vmessItem) == 0)
+ if (Utils.IsNullOrEmpty(cmbCoreType.Text))
+ {
+ vmessItem.coreType = null;
+ }
+ else
+ {
+ vmessItem.coreType = (ECoreType)Enum.Parse(typeof(ECoreType), cmbCoreType.Text);
+ }
+
+ int ret = -1;
+ switch (eConfigType)
+ {
+ case EConfigType.Vmess:
+ ret = ConfigHandler.AddServer(ref config, vmessItem);
+ break;
+ case EConfigType.Shadowsocks:
+ ret = ConfigHandler.AddShadowsocksServer(ref config, vmessItem);
+ break;
+ case EConfigType.Socks:
+ ret = ConfigHandler.AddSocksServer(ref config, vmessItem);
+ break;
+ case EConfigType.VLESS:
+ vmessItem.flow = flow;
+ ret = ConfigHandler.AddVlessServer(ref config, vmessItem);
+ break;
+ case EConfigType.Trojan:
+ vmessItem.flow = flow;
+ ret = ConfigHandler.AddTrojanServer(ref config, vmessItem);
+ break;
+ }
+
+ if (ret == 0)
{
this.DialogResult = DialogResult.OK;
}
@@ -105,110 +270,18 @@ namespace v2rayN.Forms
{
UI.ShowWarning(UIRes.I18N("OperationFailed"));
}
+
}
private void btnGUID_Click(object sender, EventArgs e)
{
- txtId.Text = Utils.GetGUID();
+ txtId.Text =
+ txtId5.Text = Utils.GetGUID();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
-
- #region 导入客户端/服务端配置
-
- ///
- /// 导入客户端
- ///
- ///
- ///
- private void MenuItemImportClient_Click(object sender, EventArgs e)
- {
- MenuItemImport(1);
- }
-
- ///
- /// 导入服务端
- ///
- ///
- ///
- 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 vmessItemTemp;
- if (type.Equals(1))
- {
- vmessItemTemp = V2rayConfigHandler.ImportFromClientConfig(fileName, out msg);
- }
- else
- {
- vmessItemTemp = V2rayConfigHandler.ImportFromServerConfig(fileName, out msg);
- }
- if (vmessItemTemp == null)
- {
- UI.ShowWarning(msg);
- return;
- }
- vmessItem = vmessItemTemp;
-
- txtAddress.Text = vmessItem.address;
- txtPort.Text = vmessItem.port.ToString();
- txtId.Text = vmessItem.id;
- txtAlterId.Text = vmessItem.alterId.ToString();
- txtRemarks.Text = vmessItem.remarks;
-
- transportControl.BindingServer(vmessItem);
- }
-
- ///
- /// 从剪贴板导入URL
- ///
- ///
- ///
- private void MenuItemImportClipboard_Click(object sender, EventArgs e)
- {
- ClearServer();
-
- VmessItem vmessItemTemp = ShareHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg);
- if (vmessItemTemp == null)
- {
- UI.ShowWarning(msg);
- return;
- }
- vmessItem = vmessItemTemp;
-
- txtAddress.Text = vmessItem.address;
- txtPort.Text = vmessItem.port.ToString();
- txtId.Text = vmessItem.id;
- txtAlterId.Text = vmessItem.alterId.ToString();
- txtRemarks.Text = vmessItem.remarks;
-
- transportControl.BindingServer(vmessItem);
- }
- #endregion
-
}
}
diff --git a/v2rayN/v2rayN/Forms/AddServerForm.resx b/v2rayN/v2rayN/Forms/AddServerForm.resx
index 1e251a8f..31a88ee9 100644
--- a/v2rayN/v2rayN/Forms/AddServerForm.resx
+++ b/v2rayN/v2rayN/Forms/AddServerForm.resx
@@ -138,259 +138,632 @@
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- panel2
+ panBottom
0
-
- 411, 83
+
+ True
-
- 75, 23
+
+
+ NoControl
-
- 23
+
+ 11, 11
-
- &Generate
+
+ 89, 12
-
- btnGUID
+
+ 25
-
- System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ User(Optional)
-
- groupBox1
+
+ label17
-
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panSocks
+
+
0
-
- True
+
+ 126, 7
-
- 411, 175
+
+ 278, 21
-
- 113, 12
+
+ 2
-
- 22
+
+ txtSecurity4
-
- * Fill in manually
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- label13
+
+ panSocks
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
+
1
-
+
True
-
- 411, 147
+
+ NoControl
-
- 119, 12
+
+ 11, 42
-
- 14
+
+ 113, 12
-
- *Recommended (auto)
+
+ 23
-
- label8
+
+ Password(Optional)
-
+
+ label18
+
+
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- groupBox1
+
+ panSocks
-
+
2
-
- 195, 143
+
+ 126, 38
-
- 210, 20
+
+ 278, 21
-
+
+ 3
+
+
+ txtId4
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panSocks
+
+
+ 3
+
+
+ 303, 163
+
+
+ 82, 39
+
+
+ 31
+
+
+ False
+
+
+ panSocks
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 0
+
+
+ 126, 7
+
+
+ 278, 21
+
+
+ 2
+
+
+ txtId3
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panSs
+
+
+ 0
+
+
+ True
+
+
+ NoControl
+
+
+ 11, 9
+
+
+ 53, 12
+
+
4
-
- cmbSecurity
+
+ Password
-
+
+ label15
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panSs
+
+
+ 1
+
+
+ 126, 39
+
+
+ 278, 20
+
+
+ 3
+
+
+ cmbSecurity3
+
+
System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- groupBox1
+
+ panSs
-
- 3
-
-
- 127, 171
-
-
- 278, 21
-
-
- 5
-
-
- txtRemarks
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 4
-
-
- True
-
-
- 12, 175
-
-
- 95, 12
-
-
- 10
-
-
- Alias (remarks)
-
-
- label6
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 5
-
-
- True
-
-
- 12, 147
-
-
- 173, 12
-
-
- 8
-
-
- Encryption method (security)
-
-
- label5
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 6
-
-
- 127, 114
-
-
- 143, 21
-
-
- 3
-
-
- txtAlterId
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 7
-
-
- True
-
-
- 12, 118
-
-
- 47, 12
-
-
- 6
-
-
- AlterId
-
-
- label4
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 8
-
-
- 127, 85
-
-
- 278, 21
-
-
+
2
-
- txtId
+
+ True
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ NoControl
-
+
+ 11, 40
+
+
+ 65, 12
+
+
+ 8
+
+
+ Encryption
+
+
+ label16
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panSs
+
+
+ 3
+
+
+ 142, 163
+
+
+ 82, 39
+
+
+ 30
+
+
+ False
+
+
+ panSs
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
groupBox1
-
- 9
+
+ 1
+
+
+ True
+
+
+ NoControl
+
+
+ 12, 9
+
+
+ 53, 12
+
+
+ 4
+
+
+ Password
+
+
+ label12
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panTrojan
+
+
+ 0
+
+
+ 127, 39
+
+
+ 211, 20
+
+
+ 3
+
+
+ cmbFlow6
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panTrojan
+
+
+ 1
+
+
+ 127, 7
+
+
+ 265, 21
+
+
+ 2
+
+
+ txtId6
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panTrojan
+
+
+ 2
+
+
+ True
+
+
+ NoControl
+
+
+ 12, 43
+
+
+ 29, 12
+
+
+ 27
+
+
+ Flow
+
+
+ label14
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panTrojan
+
+
+ 3
+
+
+ 534, 163
+
+
+ 82, 39
+
+
+ 29
+
+
+ False
+
+
+ panTrojan
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 2
+
+
+ True
+
+
+ NoControl
+
+
+ 11, 11
+
+
+ 53, 12
+
+
+ 4
+
+
+ UUID(id)
+
+
+ label7
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVless
+
+
+ 0
+
+
+ 126, 39
+
+
+ 211, 20
+
+
+ 3
+
+
+ cmbFlow5
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVless
+
+
+ 1
+
+
+ 126, 7
+
+
+ 278, 21
+
+
+ 2
+
+
+ txtId5
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVless
+
+
+ 2
+
+
+ True
+
+
+ NoControl
+
+
+ 11, 43
+
+
+ 29, 12
+
+
+ 25
+
+
+ Flow
+
+
+ label9
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVless
+
+
+ 3
+
+
+ True
+
+
+ NoControl
+
+
+ 11, 74
+
+
+ 65, 12
+
+
+ 8
+
+
+ Encryption
+
+
+ label10
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVless
+
+
+ 4
+
+
+ NoControl
+
+
+ 410, 7
+
+
+ 75, 23
+
+
+ 23
+
+
+ Generate
+
+
+ btnGUID5
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVless
+
+
+ 5
+
+
+ none
+
+
+ 126, 70
+
+
+ 211, 20
+
+
+ 4
+
+
+ cmbSecurity5
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVless
+
+
+ 6
+
+
+ True
+
+
+ NoControl
+
+
+ 352, 73
+
+
+ 119, 12
+
+
+ 14
+
+
+ *Recommended (none)
+
+
+ label11
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVless
+
+
+ 7
+
+
+ 396, 166
+
+
+ 92, 36
+
+
+ 27
+
+
+ False
+
+
+ panVless
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 3
True
- 12, 89
+ 11, 11
53, 12
@@ -408,85 +781,286 @@
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- groupBox1
+ panVmess
- 10
-
-
- 127, 56
-
-
- 143, 21
-
-
- 1
-
-
- txtPort
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 11
-
-
- True
-
-
- 12, 60
-
-
- 29, 12
-
-
- 2
-
-
- Port
-
-
- label2
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- groupBox1
-
-
- 12
-
-
- 127, 27
-
-
- 359, 21
-
-
0
-
- txtAddress
+
+ 126, 7
-
+
+ 278, 21
+
+
+ 2
+
+
+ txtId
+
+
System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
+ panVmess
+
+
+ 1
+
+
+ 410, 5
+
+
+ 75, 23
+
+
+ 23
+
+
+ &Generate
+
+
+ btnGUID
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVmess
+
+
+ 2
+
+
+ True
+
+
+ 11, 40
+
+
+ 47, 12
+
+
+ 6
+
+
+ AlterId
+
+
+ label4
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVmess
+
+
+ 3
+
+
+ True
+
+
+ 410, 69
+
+
+ 119, 12
+
+
+ 14
+
+
+ *Recommended (auto)
+
+
+ label8
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVmess
+
+
+ 4
+
+
+ 126, 36
+
+
+ 143, 21
+
+
+ 3
+
+
+ txtAlterId
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVmess
+
+
+ 5
+
+
+ 194, 65
+
+
+ 210, 20
+
+
+ 4
+
+
+ cmbSecurity
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVmess
+
+
+ 6
+
+
+ True
+
+
+ 11, 69
+
+
+ 173, 12
+
+
+ 8
+
+
+ Encryption method (security)
+
+
+ label5
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panVmess
+
+
+ 7
+
+
+ 16, 163
+
+
+ 82, 39
+
+
+ 25
+
+
+ False
+
+
+ panVmess
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
groupBox1
-
- 13
+
+ 4
+
+
+ 625, 8
+
+
+ 89, 20
+
+
+ 38
+
+
+ cmbCoreType
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panAddr
+
+
+ 0
+
+
+ True
+
+
+ NoControl
+
+
+ 553, 12
+
+
+ 59, 12
+
+
+ 39
+
+
+ Core Type
+
+
+ labCoreType
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panAddr
+
+
+ 1
+
+
+ True
+
+
+ 11, 12
+
+
+ 95, 12
+
+
+ 10
+
+
+ Alias (remarks)
+
+
+ label6
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panAddr
+
+
+ 2
True
- 12, 31
+ 11, 43
47, 12
@@ -504,20 +1078,133 @@
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- groupBox1
+ panAddr
- 14
+ 3
+
+
+ 126, 39
+
+
+ 359, 21
+
+
+ 1
+
+
+ txtAddress
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panAddr
+
+
+ 4
+
+
+ True
+
+
+ 11, 72
+
+
+ 29, 12
+
+
+ 2
+
+
+ Port
+
+
+ label2
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panAddr
+
+
+ 5
+
+
+ 126, 68
+
+
+ 143, 21
+
+
+ 2
+
+
+ txtPort
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panAddr
+
+
+ 6
+
+
+ 126, 8
+
+
+ 278, 21
+
+
+ 0
+
+
+ txtRemarks
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panAddr
+
+
+ 7
+
+
+ Top
+
+
+ 3, 17
+
+
+ 723, 100
+
+
+ 24
+
+
+ panAddr
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ groupBox1
+
+
+ 5
-
Fill
- 0, 35
+ 0, 10
- 729, 216
+ 729, 221
3
@@ -556,109 +1243,58 @@
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- panel2
+ panBottom
1
-
+
Bottom
-
- 0, 481
+
+ 0, 461
-
+
729, 60
-
+
7
-
- panel2
+
+ panBottom
-
+
System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
$this
-
+
2
-
+
Top
-
- 0, 25
-
-
- 729, 10
-
-
- 6
-
-
- panel1
-
-
- System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- $this
-
-
- 3
-
-
- 17, 17
-
-
- 237, 22
-
-
- Import client configuration
-
-
- 237, 22
-
-
- Import server configuration
-
-
- 234, 6
-
-
- 237, 22
-
-
- Import URL from clipboard
-
-
- 162, 21
-
-
- Import configuration file
-
-
+
0, 0
-
- 729, 25
+
+ 729, 10
-
- 8
+
+ 6
-
- menuServer
+
+ panTop
-
- System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
$this
-
- 4
+
+ 3
Fill
@@ -679,33 +1315,33 @@
v2rayN.Forms.ServerTransportControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
- panel3
+ panTran
0
-
+
Bottom
-
- 0, 251
+
+ 0, 231
-
+
729, 230
-
+
9
-
- panel3
+
+ panTran
-
+
System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
$this
-
+
1
@@ -718,41 +1354,11 @@
6, 12
- 729, 541
+ 729, 521
Edit or add a [VMess] server
-
- MenuItem1
-
-
- System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- MenuItemImportClient
-
-
- System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- MenuItemImportServer
-
-
- System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- toolStripSeparator1
-
-
- System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- MenuItemImportClipboard
-
-
- System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
AddServerForm
diff --git a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx
index 47b4d4cd..b9c81218 100644
--- a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx
+++ b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx
@@ -120,93 +120,109 @@
取消(&C)
+
+ 服务器
+
+
+
+ None
+
+
+
+ 270, 156
+
+
+ 115, 61
+
+
+ 77, 12
+
+
+ 用户名(可选)
+
+
+ 65, 12
+
+
+ 密码(可选)
+
+
+ None
+
+
+ 142, 147
+
+
+ 137, 78
+
+
+ 89, 12
+
+
+ 密码(password)
+
+
+ 125, 12
+
+
+ 加密方式(encryption)
+
+
+ 89, 12
+
+
+ 密码(password)
+
+
+ 65, 12
+
+
+ 流控(flow)
+
+
+ 110, 52
+
+
+ 65, 12
+
+
+ 用户ID(id)
+
+
+ 65, 12
+
+
+ 流控(flow)
+
+
+ 101, 12
+
+
+ 加密(encryption)
+
+
+ 生成
+
+
+ 71, 12
+
+
+ *非空(none)
+
+
+ 65, 12
+
+
+ 用户ID(id)
+
生成(&G)
-
- *手填,方便识别管理
-
-
-
- 149, 12
-
-
+
95, 12
-
- 167, 12
-
-
- 180, 7
-
-
- 350, 36
-
-
- 143, 12
-
-
- 149, 12
-
-
- 127, 168
-
-
- 127, 32
-
-
- 211, 20
-
-
- 9, 36
-
-
- 107, 12
-
-
- 9, 168
-
-
- 65, 12
-
-
- 161, 12
-
-
- 9, 237
-
-
- 107, 12
-
-
- 127, 237
-
-
- 282, 71
-
-
- 197, 12
-
-
- 127, 102
-
-
- 334, 51
-
-
- 9, 71
-
-
- 89, 12
-
-
- 9, 102
-
-
- 89, 12
-
-
- 127, 67
+
+ 额外ID(alterId)
113, 12
@@ -215,40 +231,22 @@
*随便选,建议(auto)
- 127, 143
+ 126, 65
211, 20
-
- 83, 12
-
-
- 别名(remarks)
-
113, 12
加密方式(security)
-
- 95, 12
+
+ 83, 12
-
- 额外ID(alterId)
-
-
- 65, 12
-
-
- 用户ID(id)
-
-
- 65, 12
-
-
- 端口(port)
+
+ 别名(remarks)
83, 12
@@ -256,40 +254,22 @@
地址(address)
-
- 服务器
+
+ 65, 12
+
+
+ 端口(port)
确定(&O)
-
- 171, 22
-
-
- 导入客户端配置
-
-
- 171, 22
-
-
- 导入服务端配置
-
-
- 168, 6
-
-
- 171, 22
-
-
- 从剪贴板导入URL
-
-
- 92, 21
-
-
- 导入配置文件
-
编辑或添加[VMess]服务器
+
+ 生成
+
+
+ Core类型
+
\ No newline at end of file
diff --git a/v2rayN/v2rayN/Forms/BaseServerForm.cs b/v2rayN/v2rayN/Forms/BaseServerForm.cs
index e68198fe..9618c480 100644
--- a/v2rayN/v2rayN/Forms/BaseServerForm.cs
+++ b/v2rayN/v2rayN/Forms/BaseServerForm.cs
@@ -8,11 +8,12 @@ namespace v2rayN.Forms
{
public VmessItem vmessItem = null;
public string groupId;
+ public EConfigType eConfigType;
public BaseServerForm()
{
InitializeComponent();
- }
-
+ }
+
}
}
diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs
index a362787a..07ff609d 100644
--- a/v2rayN/v2rayN/Forms/MainForm.cs
+++ b/v2rayN/v2rayN/Forms/MainForm.cs
@@ -496,7 +496,7 @@ namespace v2rayN.Forms
groupId = string.Empty;
//groupId = tabGroup.TabPages[tabGroup.SelectedIndex].Name;
groupId = tabGroup.SelectedTab.Name;
-
+
RefreshServers();
lvServers.Focus();
@@ -579,29 +579,17 @@ namespace v2rayN.Forms
private void ShowServerForm(int configType, int index)
{
BaseServerForm fm;
- switch (configType)
+ if (configType == (int)EConfigType.Custom)
{
- case (int)EConfigType.Vmess:
- fm = new AddServerForm();
- break;
- case (int)EConfigType.Shadowsocks:
- fm = new AddServer3Form();
- break;
- case (int)EConfigType.Socks:
- fm = new AddServer4Form();
- break;
- case (int)EConfigType.VLESS:
- fm = new AddServer5Form();
- break;
- case (int)EConfigType.Trojan:
- fm = new AddServer6Form();
- break;
- default:
- fm = new AddServer2Form();
- break;
+ fm = new AddServer2Form();
}
+ else
+ {
+ fm = new AddServerForm();
+ }
fm.vmessItem = index >= 0 ? lstVmess[index] : null;
fm.groupId = groupId;
+ fm.eConfigType = (EConfigType)configType;
if (fm.ShowDialog() == DialogResult.OK)
{
RefreshServers();
@@ -714,7 +702,7 @@ namespace v2rayN.Forms
{
return;
}
- if (ConfigHandler.CopyServer(ref config, lstVmess[index]) == 0)
+ if (ConfigHandler.CopyServer(ref config, lstSelecteds) == 0)
{
RefreshServers();
}
diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
index 00c105a5..cba25aca 100644
--- a/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
+++ b/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
@@ -75,14 +75,25 @@
this.txtautoUpdateInterval = new System.Windows.Forms.TextBox();
this.label15 = new System.Windows.Forms.Label();
this.chkIgnoreGeoUpdateCore = new System.Windows.Forms.CheckBox();
- this.cmbCoreType = new System.Windows.Forms.ComboBox();
- this.label4 = new System.Windows.Forms.Label();
this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox();
this.cbFreshrate = new System.Windows.Forms.ComboBox();
this.lbFreshrate = new System.Windows.Forms.Label();
this.chkEnableStatistics = new System.Windows.Forms.CheckBox();
this.chkAllowLANConn = new System.Windows.Forms.CheckBox();
this.chkAutoRun = new System.Windows.Forms.CheckBox();
+ this.tabPageCoreType = new System.Windows.Forms.TabPage();
+ this.cmbCoreType6 = new System.Windows.Forms.ComboBox();
+ this.labCoreType6 = new System.Windows.Forms.Label();
+ this.cmbCoreType5 = new System.Windows.Forms.ComboBox();
+ this.labCoreType5 = new System.Windows.Forms.Label();
+ this.cmbCoreType4 = new System.Windows.Forms.ComboBox();
+ this.labCoreType4 = new System.Windows.Forms.Label();
+ this.cmbCoreType3 = new System.Windows.Forms.ComboBox();
+ this.labCoreType3 = new System.Windows.Forms.Label();
+ this.cmbCoreType2 = new System.Windows.Forms.ComboBox();
+ this.labCoreType2 = new System.Windows.Forms.Label();
+ this.cmbCoreType1 = new System.Windows.Forms.ComboBox();
+ this.labCoreType1 = new System.Windows.Forms.Label();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label13 = new System.Windows.Forms.Label();
@@ -97,6 +108,7 @@
this.tabPage2.SuspendLayout();
this.tabPage6.SuspendLayout();
this.tabPage7.SuspendLayout();
+ this.tabPageCoreType.SuspendLayout();
this.tabPage3.SuspendLayout();
this.groupBox2.SuspendLayout();
this.panel2.SuspendLayout();
@@ -116,6 +128,7 @@
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage6);
this.tabControl1.Controls.Add(this.tabPage7);
+ this.tabControl1.Controls.Add(this.tabPageCoreType);
this.tabControl1.Controls.Add(this.tabPage3);
resources.ApplyResources(this.tabControl1, "tabControl1");
this.tabControl1.Name = "tabControl1";
@@ -382,8 +395,6 @@
this.tabPage7.Controls.Add(this.txtautoUpdateInterval);
this.tabPage7.Controls.Add(this.label15);
this.tabPage7.Controls.Add(this.chkIgnoreGeoUpdateCore);
- this.tabPage7.Controls.Add(this.cmbCoreType);
- this.tabPage7.Controls.Add(this.label4);
this.tabPage7.Controls.Add(this.chkKeepOlderDedupl);
this.tabPage7.Controls.Add(this.cbFreshrate);
this.tabPage7.Controls.Add(this.lbFreshrate);
@@ -429,18 +440,6 @@
this.chkIgnoreGeoUpdateCore.Name = "chkIgnoreGeoUpdateCore";
this.chkIgnoreGeoUpdateCore.UseVisualStyleBackColor = true;
//
- // cmbCoreType
- //
- this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.cmbCoreType.FormattingEnabled = true;
- resources.ApplyResources(this.cmbCoreType, "cmbCoreType");
- this.cmbCoreType.Name = "cmbCoreType";
- //
- // label4
- //
- resources.ApplyResources(this.label4, "label4");
- this.label4.Name = "label4";
- //
// chkKeepOlderDedupl
//
resources.ApplyResources(this.chkKeepOlderDedupl, "chkKeepOlderDedupl");
@@ -477,6 +476,96 @@
this.chkAutoRun.Name = "chkAutoRun";
this.chkAutoRun.UseVisualStyleBackColor = true;
//
+ // tabPageCoreType
+ //
+ this.tabPageCoreType.Controls.Add(this.cmbCoreType6);
+ this.tabPageCoreType.Controls.Add(this.labCoreType6);
+ this.tabPageCoreType.Controls.Add(this.cmbCoreType5);
+ this.tabPageCoreType.Controls.Add(this.labCoreType5);
+ this.tabPageCoreType.Controls.Add(this.cmbCoreType4);
+ this.tabPageCoreType.Controls.Add(this.labCoreType4);
+ this.tabPageCoreType.Controls.Add(this.cmbCoreType3);
+ this.tabPageCoreType.Controls.Add(this.labCoreType3);
+ this.tabPageCoreType.Controls.Add(this.cmbCoreType2);
+ this.tabPageCoreType.Controls.Add(this.labCoreType2);
+ this.tabPageCoreType.Controls.Add(this.cmbCoreType1);
+ this.tabPageCoreType.Controls.Add(this.labCoreType1);
+ resources.ApplyResources(this.tabPageCoreType, "tabPageCoreType");
+ this.tabPageCoreType.Name = "tabPageCoreType";
+ this.tabPageCoreType.UseVisualStyleBackColor = true;
+ //
+ // cmbCoreType6
+ //
+ this.cmbCoreType6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbCoreType6.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbCoreType6, "cmbCoreType6");
+ this.cmbCoreType6.Name = "cmbCoreType6";
+ //
+ // labCoreType6
+ //
+ resources.ApplyResources(this.labCoreType6, "labCoreType6");
+ this.labCoreType6.Name = "labCoreType6";
+ //
+ // cmbCoreType5
+ //
+ this.cmbCoreType5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbCoreType5.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbCoreType5, "cmbCoreType5");
+ this.cmbCoreType5.Name = "cmbCoreType5";
+ //
+ // labCoreType5
+ //
+ resources.ApplyResources(this.labCoreType5, "labCoreType5");
+ this.labCoreType5.Name = "labCoreType5";
+ //
+ // cmbCoreType4
+ //
+ this.cmbCoreType4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbCoreType4.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbCoreType4, "cmbCoreType4");
+ this.cmbCoreType4.Name = "cmbCoreType4";
+ //
+ // labCoreType4
+ //
+ resources.ApplyResources(this.labCoreType4, "labCoreType4");
+ this.labCoreType4.Name = "labCoreType4";
+ //
+ // cmbCoreType3
+ //
+ this.cmbCoreType3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbCoreType3.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbCoreType3, "cmbCoreType3");
+ this.cmbCoreType3.Name = "cmbCoreType3";
+ //
+ // labCoreType3
+ //
+ resources.ApplyResources(this.labCoreType3, "labCoreType3");
+ this.labCoreType3.Name = "labCoreType3";
+ //
+ // cmbCoreType2
+ //
+ this.cmbCoreType2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbCoreType2.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbCoreType2, "cmbCoreType2");
+ this.cmbCoreType2.Name = "cmbCoreType2";
+ //
+ // labCoreType2
+ //
+ resources.ApplyResources(this.labCoreType2, "labCoreType2");
+ this.labCoreType2.Name = "labCoreType2";
+ //
+ // cmbCoreType1
+ //
+ this.cmbCoreType1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbCoreType1.FormattingEnabled = true;
+ resources.ApplyResources(this.cmbCoreType1, "cmbCoreType1");
+ this.cmbCoreType1.Name = "cmbCoreType1";
+ //
+ // labCoreType1
+ //
+ resources.ApplyResources(this.labCoreType1, "labCoreType1");
+ this.labCoreType1.Name = "labCoreType1";
+ //
// tabPage3
//
this.tabPage3.Controls.Add(this.groupBox2);
@@ -548,6 +637,8 @@
this.tabPage6.PerformLayout();
this.tabPage7.ResumeLayout(false);
this.tabPage7.PerformLayout();
+ this.tabPageCoreType.ResumeLayout(false);
+ this.tabPageCoreType.PerformLayout();
this.tabPage3.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
@@ -607,8 +698,6 @@
private System.Windows.Forms.LinkLabel linkDnsObjectDoc;
private System.Windows.Forms.TextBox txtremoteDNS;
private System.Windows.Forms.Label label14;
- private System.Windows.Forms.ComboBox cmbCoreType;
- private System.Windows.Forms.Label label4;
private System.Windows.Forms.CheckBox chkIgnoreGeoUpdateCore;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.TextBox txtsystemProxyExceptions;
@@ -620,5 +709,18 @@
private System.Windows.Forms.Button btnSetLoopback;
private System.Windows.Forms.CheckBox chkEnableAutoAdjustMainLvColWidth;
private System.Windows.Forms.CheckBox chkEnableSecurityProtocolTls13;
+ private System.Windows.Forms.TabPage tabPageCoreType;
+ private System.Windows.Forms.ComboBox cmbCoreType1;
+ private System.Windows.Forms.Label labCoreType1;
+ private System.Windows.Forms.ComboBox cmbCoreType6;
+ private System.Windows.Forms.Label labCoreType6;
+ private System.Windows.Forms.ComboBox cmbCoreType5;
+ private System.Windows.Forms.Label labCoreType5;
+ private System.Windows.Forms.ComboBox cmbCoreType4;
+ private System.Windows.Forms.Label labCoreType4;
+ private System.Windows.Forms.ComboBox cmbCoreType3;
+ private System.Windows.Forms.Label labCoreType3;
+ private System.Windows.Forms.ComboBox cmbCoreType2;
+ private System.Windows.Forms.Label labCoreType2;
}
}
\ No newline at end of file
diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.cs
index e3673fde..33a5c1b8 100644
--- a/v2rayN/v2rayN/Forms/OptionSettingForm.cs
+++ b/v2rayN/v2rayN/Forms/OptionSettingForm.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;
using v2rayN.Base;
@@ -16,13 +17,13 @@ namespace v2rayN.Forms
private void OptionSettingForm_Load(object sender, EventArgs e)
{
- cmbCoreType.Items.AddRange(Global.coreTypes.ToArray());
-
InitBase();
InitKCP();
InitGUI();
+
+ InitCoreType();
}
///
@@ -123,11 +124,40 @@ namespace v2rayN.Forms
}
chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore;
- cmbCoreType.SelectedIndex = (int)config.coreType;
txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString();
chkEnableAutoAdjustMainLvColWidth.Checked = config.uiItem.enableAutoAdjustMainLvColWidth;
chkEnableSecurityProtocolTls13.Checked = config.enableSecurityProtocolTls13;
}
+
+ private void InitCoreType()
+ {
+ if (config.coreTypeItem == null)
+ {
+ config.coreTypeItem = new List();
+ }
+
+ foreach (EConfigType it in Enum.GetValues(typeof(EConfigType)))
+ {
+ if (config.coreTypeItem.FindIndex(t => t.configType == it) >= 0)
+ {
+ continue;
+ }
+
+ config.coreTypeItem.Add(new CoreTypeItem()
+ {
+ configType = it,
+ coreType = ECoreType.v2fly
+ });
+ }
+ for (int k = 1; k <= config.coreTypeItem.Count; k++)
+ {
+ var item = config.coreTypeItem[k - 1];
+ ((ComboBox)tabPageCoreType.Controls[$"cmbCoreType{k}"]).Items.AddRange(Global.coreTypes.ToArray());
+ tabPageCoreType.Controls[$"labCoreType{k}"].Text = item.configType.ToString();
+ tabPageCoreType.Controls[$"cmbCoreType{k}"].Text = item.coreType.ToString();
+ }
+ }
+
private void btnOK_Click(object sender, EventArgs e)
{
if (SaveBase() != 0)
@@ -146,6 +176,11 @@ namespace v2rayN.Forms
return;
}
+ if (SaveCoreType() != 0)
+ {
+ return;
+ }
+
if (ConfigHandler.SaveConfig(ref config) == 0)
{
this.DialogResult = DialogResult.OK;
@@ -308,7 +343,6 @@ namespace v2rayN.Forms
config.keepOlderDedupl = chkKeepOlderDedupl.Checked;
config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked;
- config.coreType = (ECoreType)cmbCoreType.SelectedIndex;
config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text);
config.uiItem.enableAutoAdjustMainLvColWidth = chkEnableAutoAdjustMainLvColWidth.Checked;
config.enableSecurityProtocolTls13 = chkEnableSecurityProtocolTls13.Checked;
@@ -316,6 +350,17 @@ namespace v2rayN.Forms
return 0;
}
+ private int SaveCoreType()
+ {
+ for (int k = 1; k <= config.coreTypeItem.Count; k++)
+ {
+ var item = config.coreTypeItem[k - 1];
+ item.coreType = (ECoreType)Enum.Parse(typeof(ECoreType), tabPageCoreType.Controls[$"cmbCoreType{k}"].Text);
+ }
+
+ return 0;
+ }
+
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.resx
index 26bac3d1..ae888117 100644
--- a/v2rayN/v2rayN/Forms/OptionSettingForm.resx
+++ b/v2rayN/v2rayN/Forms/OptionSettingForm.resx
@@ -637,7 +637,7 @@
3, 3
- 648, 421
+ 722, 421
6
@@ -661,7 +661,7 @@
3, 3, 3, 3
- 654, 427
+ 728, 427
0
@@ -775,7 +775,7 @@
4, 22
- 654, 427
+ 728, 427
4
@@ -1117,7 +1117,7 @@
3, 3, 3, 3
- 654, 427
+ 728, 427
2
@@ -1299,57 +1299,6 @@
5
-
- 325, 130
-
-
- 97, 20
-
-
- 34
-
-
- cmbCoreType
-
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabPage7
-
-
- 6
-
-
- True
-
-
- NoControl
-
-
- 253, 134
-
-
- 59, 12
-
-
- 35
-
-
- Core Type
-
-
- label4
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tabPage7
-
-
- 7
-
True
@@ -1378,7 +1327,7 @@
tabPage7
- 8
+ 6
161, 84
@@ -1399,7 +1348,7 @@
tabPage7
- 9
+ 7
True
@@ -1429,7 +1378,7 @@
tabPage7
- 10
+ 8
True
@@ -1459,7 +1408,7 @@
tabPage7
- 11
+ 9
True
@@ -1486,7 +1435,7 @@
tabPage7
- 12
+ 10
True
@@ -1513,7 +1462,7 @@
tabPage7
- 13
+ 11
4, 22
@@ -1522,7 +1471,7 @@
3, 3, 3, 3
- 654, 427
+ 728, 427
3
@@ -1542,6 +1491,339 @@
3
+
+ 117, 172
+
+
+ 143, 20
+
+
+ 46
+
+
+ cmbCoreType6
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 0
+
+
+ True
+
+
+ NoControl
+
+
+ 45, 176
+
+
+ 59, 12
+
+
+ 47
+
+
+ Core Type
+
+
+ labCoreType6
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 1
+
+
+ 117, 146
+
+
+ 143, 20
+
+
+ 44
+
+
+ cmbCoreType5
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 2
+
+
+ True
+
+
+ NoControl
+
+
+ 45, 150
+
+
+ 59, 12
+
+
+ 45
+
+
+ Core Type
+
+
+ labCoreType5
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 3
+
+
+ 117, 120
+
+
+ 143, 20
+
+
+ 42
+
+
+ cmbCoreType4
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 4
+
+
+ True
+
+
+ NoControl
+
+
+ 45, 124
+
+
+ 59, 12
+
+
+ 43
+
+
+ Core Type
+
+
+ labCoreType4
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 5
+
+
+ 117, 94
+
+
+ 143, 20
+
+
+ 40
+
+
+ cmbCoreType3
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 6
+
+
+ True
+
+
+ NoControl
+
+
+ 45, 98
+
+
+ 59, 12
+
+
+ 41
+
+
+ Core Type
+
+
+ labCoreType3
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 7
+
+
+ 117, 68
+
+
+ 143, 20
+
+
+ 38
+
+
+ cmbCoreType2
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 8
+
+
+ True
+
+
+ NoControl
+
+
+ 45, 72
+
+
+ 59, 12
+
+
+ 39
+
+
+ Core Type
+
+
+ labCoreType2
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 9
+
+
+ 117, 42
+
+
+ 143, 20
+
+
+ 36
+
+
+ cmbCoreType1
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 10
+
+
+ True
+
+
+ NoControl
+
+
+ 45, 46
+
+
+ 59, 12
+
+
+ 37
+
+
+ Core Type
+
+
+ labCoreType1
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabPageCoreType
+
+
+ 11
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 728, 427
+
+
+ 6
+
+
+ CoreType settings
+
+
+ tabPageCoreType
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tabControl1
+
+
+ 4
+
True
@@ -1636,7 +1918,7 @@
0, 0
- 654, 427
+ 728, 427
42
@@ -1660,7 +1942,7 @@
4, 22
- 654, 427
+ 728, 427
5
@@ -1678,7 +1960,7 @@
tabControl1
- 4
+ 5
Fill
@@ -1687,7 +1969,7 @@
0, 10
- 662, 453
+ 736, 453
10
@@ -1735,7 +2017,7 @@
0, 463
- 662, 60
+ 736, 60
11
@@ -1759,7 +2041,7 @@
0, 0
- 662, 10
+ 736, 10
9
@@ -1783,7 +2065,7 @@
6, 12
- 662, 523
+ 736, 523
4, 4, 4, 4
diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx
index 133efd06..2d09cab8 100644
--- a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx
+++ b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx
@@ -334,4 +334,7 @@
参数设置
+
+ Core类型设置
+
\ No newline at end of file
diff --git a/v2rayN/v2rayN/Global.cs b/v2rayN/v2rayN/Global.cs
index 16b07df9..d4dccdaf 100644
--- a/v2rayN/v2rayN/Global.cs
+++ b/v2rayN/v2rayN/Global.cs
@@ -199,8 +199,7 @@ namespace v2rayN
public static readonly List xtlsFlows = new List { "", "xtls-rprx-origin", "xtls-rprx-origin-udp443", "xtls-rprx-direct", "xtls-rprx-direct-udp443" };
public static readonly List networks = new List { "tcp", "kcp", "ws", "h2", "quic", "grpc" };
public static readonly List kcpHeaderTypes = new List { "srtp", "utp", "wechat-video", "dtls", "wireguard" };
- public static readonly List coreTypes = new List { "v2fly_core", "Xray_core" };
-
+ public static readonly List coreTypes = new List { "v2fly", "Xray" };
public const string GrpcgunMode = "gun";
public const string GrpcmultiMode = "multi";
diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs
index a8eac639..9c7f0b1c 100644
--- a/v2rayN/v2rayN/Handler/ConfigHandler.cs
+++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs
@@ -250,35 +250,17 @@ namespace v2rayN.Handler
///
///
///
- public static int CopyServer(ref Config config, VmessItem item)
+ public static int CopyServer(ref Config config, List indexs)
{
- if (item == null)
+ foreach (var item in indexs)
{
- return -1;
+ VmessItem vmessItem = Utils.DeepCopy(item);
+ vmessItem.indexId = string.Empty;
+ vmessItem.remarks = string.Format("{0}-clone", item.remarks);
+
+ AddServerCommon(ref config, vmessItem);
}
- VmessItem vmessItem = new VmessItem
- {
- configVersion = item.configVersion,
- address = item.address,
- port = item.port,
- id = item.id,
- alterId = item.alterId,
- security = item.security,
- network = item.network,
- remarks = string.Format("{0}-clone", item.remarks),
- headerType = item.headerType,
- requestHost = item.requestHost,
- path = item.path,
- streamSecurity = item.streamSecurity,
- allowInsecure = item.allowInsecure,
- configType = item.configType,
- flow = item.flow,
- sni = item.sni
- };
-
- AddServerCommon(ref config, vmessItem);
-
ToJsonFile(config);
return 0;
diff --git a/v2rayN/v2rayN/Handler/V2rayHandler.cs b/v2rayN/v2rayN/Handler/V2rayHandler.cs
index b3d2df98..4b6c234a 100644
--- a/v2rayN/v2rayN/Handler/V2rayHandler.cs
+++ b/v2rayN/v2rayN/Handler/V2rayHandler.cs
@@ -36,27 +36,10 @@ namespace v2rayN.Handler
///
public void LoadV2ray(Config config)
{
- if (config.coreType == ECoreType.v2fly_core)
- {
- lstV2ray = new List
- {
- "wv2ray",
- "v2ray"
- };
- coreUrl = Global.v2flyCoreUrl;
- }
- else
- {
- lstV2ray = new List
- {
- "xray"
- };
- coreUrl = Global.xrayCoreUrl;
- }
-
if (Global.reloadV2ray)
{
var item = ConfigHandler.GetDefaultServer(ref config);
+ SetCore(config, item);
string fileName = Utils.GetPath(v2rayConfigRes);
if (V2rayConfigHandler.GenerateClientConfig(item, fileName, false, out string msg) != 0)
{
@@ -334,5 +317,32 @@ namespace v2rayN.Handler
Utils.SaveLog(ex.Message, ex);
}
}
+
+ private void SetCore(Config config, VmessItem item)
+ {
+ var coreType = config.GetCoreType((EConfigType)item.configType);
+ if (item.coreType != null)
+ {
+ coreType = (ECoreType)item.coreType;
+ }
+
+ if (coreType == ECoreType.v2fly)
+ {
+ lstV2ray = new List
+ {
+ "wv2ray",
+ "v2ray"
+ };
+ coreUrl = Global.v2flyCoreUrl;
+ }
+ else
+ {
+ lstV2ray = new List
+ {
+ "xray"
+ };
+ coreUrl = Global.xrayCoreUrl;
+ }
+ }
}
}
diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs
index 53846f65..ee4e9447 100644
--- a/v2rayN/v2rayN/Mode/Config.cs
+++ b/v2rayN/v2rayN/Mode/Config.cs
@@ -120,10 +120,6 @@ namespace v2rayN.Mode
get; set;
}
- public ECoreType coreType
- {
- get; set;
- }
public bool ignoreGeoUpdateCore
{
get; set;
@@ -208,6 +204,12 @@ namespace v2rayN.Mode
{
get; set;
}
+
+ public List coreTypeItem
+ {
+ get; set;
+ }
+
#endregion
#region function
@@ -256,7 +258,7 @@ namespace v2rayN.Mode
public List GetShadowsocksSecuritys()
{
- if (coreType == ECoreType.v2fly_core)
+ if (GetCoreType(EConfigType.Shadowsocks) == ECoreType.v2fly)
{
return Global.ssSecuritys;
}
@@ -283,6 +285,19 @@ namespace v2rayN.Mode
return groupItem.Where(it => it.id == groupId).FirstOrDefault()?.remarks;
}
+ public ECoreType GetCoreType(EConfigType eConfigType)
+ {
+ if (coreTypeItem == null)
+ {
+ return ECoreType.v2fly;
+ }
+ var item = coreTypeItem.FirstOrDefault(it => it.configType == eConfigType);
+ if (item == null)
+ {
+ return ECoreType.v2fly;
+ }
+ return item.coreType;
+ }
#endregion
}
@@ -570,6 +585,10 @@ namespace v2rayN.Mode
{
get; set;
} = string.Empty;
+ public ECoreType? coreType
+ {
+ get; set;
+ }
}
[Serializable]
@@ -782,4 +801,19 @@ namespace v2rayN.Mode
get; set;
}
}
+
+
+ [Serializable]
+ public class CoreTypeItem
+ {
+ public EConfigType configType
+ {
+ get; set;
+ }
+
+ public ECoreType coreType
+ {
+ get; set;
+ }
+ }
}
diff --git a/v2rayN/v2rayN/Mode/ECoreType.cs b/v2rayN/v2rayN/Mode/ECoreType.cs
index 3076b8b7..e6d9af55 100644
--- a/v2rayN/v2rayN/Mode/ECoreType.cs
+++ b/v2rayN/v2rayN/Mode/ECoreType.cs
@@ -3,7 +3,7 @@ namespace v2rayN.Mode
{
public enum ECoreType
{
- v2fly_core = 0,
- Xray_core = 1
+ v2fly = 1,
+ Xray = 2
}
}