Refactor core type

This commit is contained in:
2dust 2022-03-18 18:52:06 +08:00
parent ac79466041
commit 583e824337
19 changed files with 2356 additions and 968 deletions

View file

@ -40,6 +40,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.cmbCoreType = new System.Windows.Forms.ComboBox();
this.labCoreType = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.panel2.SuspendLayout(); this.panel2.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
@ -54,6 +56,8 @@
// //
// groupBox1 // groupBox1
// //
this.groupBox1.Controls.Add(this.cmbCoreType);
this.groupBox1.Controls.Add(this.labCoreType);
this.groupBox1.Controls.Add(this.btnBrowse); this.groupBox1.Controls.Add(this.btnBrowse);
this.groupBox1.Controls.Add(this.txtAddress); this.groupBox1.Controls.Add(this.txtAddress);
this.groupBox1.Controls.Add(this.label13); this.groupBox1.Controls.Add(this.label13);
@ -115,6 +119,18 @@
resources.ApplyResources(this.panel1, "panel1"); resources.ApplyResources(this.panel1, "panel1");
this.panel1.Name = "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 // AddServer2Form
// //
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
@ -146,5 +162,7 @@
private System.Windows.Forms.Label label13; private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txtAddress; private System.Windows.Forms.TextBox txtAddress;
private System.Windows.Forms.Button btnBrowse; private System.Windows.Forms.Button btnBrowse;
private System.Windows.Forms.ComboBox cmbCoreType;
private System.Windows.Forms.Label labCoreType;
} }
} }

View file

@ -15,6 +15,9 @@ namespace v2rayN.Forms
private void AddServer2Form_Load(object sender, EventArgs e) private void AddServer2Form_Load(object sender, EventArgs e)
{ {
cmbCoreType.Items.AddRange(Global.coreTypes.ToArray());
cmbCoreType.Items.Add(string.Empty);
txtAddress.ReadOnly = true; txtAddress.ReadOnly = true;
if (vmessItem != null) if (vmessItem != null)
{ {
@ -35,6 +38,15 @@ namespace v2rayN.Forms
{ {
txtRemarks.Text = vmessItem.remarks; txtRemarks.Text = vmessItem.remarks;
txtAddress.Text = vmessItem.address; 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; return;
} }
vmessItem.remarks = remarks; 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) if (ConfigHandler.EditCustomServer(ref config, vmessItem) == 0)
{ {

View file

@ -143,12 +143,63 @@
<data name="&gt;&gt;btnClose.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnClose.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<data name="cmbCoreType.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 157</value>
</data>
<data name="cmbCoreType.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 20</value>
</data>
<data name="cmbCoreType.TabIndex" type="System.Int32, mscorlib">
<value>41</value>
</data>
<data name="&gt;&gt;cmbCoreType.Name" xml:space="preserve">
<value>cmbCoreType</value>
</data>
<data name="&gt;&gt;cmbCoreType.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="&gt;&gt;cmbCoreType.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;cmbCoreType.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="labCoreType.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="labCoreType.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labCoreType.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 161</value>
</data>
<data name="labCoreType.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 12</value>
</data>
<data name="labCoreType.TabIndex" type="System.Int32, mscorlib">
<value>42</value>
</data>
<data name="labCoreType.Text" xml:space="preserve">
<value>Core Type</value>
</data>
<data name="&gt;&gt;labCoreType.Name" xml:space="preserve">
<value>labCoreType</value>
</data>
<data name="&gt;&gt;labCoreType.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="&gt;&gt;labCoreType.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;labCoreType.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnBrowse.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <data name="btnBrowse.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 121</value> <value>127, 110</value>
</data> </data>
<data name="btnBrowse.Size" type="System.Drawing.Size, System.Drawing"> <data name="btnBrowse.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value> <value>75, 23</value>
@ -169,7 +220,7 @@
<value>groupBox1</value> <value>groupBox1</value>
</data> </data>
<data name="&gt;&gt;btnBrowse.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnBrowse.ZOrder" xml:space="preserve">
<value>0</value> <value>2</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, 62</value> <value>127, 62</value>
@ -193,7 +244,7 @@
<value>groupBox1</value> <value>groupBox1</value>
</data> </data>
<data name="&gt;&gt;txtAddress.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtAddress.ZOrder" xml:space="preserve">
<value>1</value> <value>3</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>
@ -220,7 +271,7 @@
<value>groupBox1</value> <value>groupBox1</value>
</data> </data>
<data name="&gt;&gt;label13.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label13.ZOrder" xml:space="preserve">
<value>2</value> <value>4</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, 23</value> <value>127, 23</value>
@ -241,7 +292,7 @@
<value>groupBox1</value> <value>groupBox1</value>
</data> </data>
<data name="&gt;&gt;txtRemarks.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtRemarks.ZOrder" xml:space="preserve">
<value>3</value> <value>5</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>
@ -268,7 +319,7 @@
<value>groupBox1</value> <value>groupBox1</value>
</data> </data>
<data name="&gt;&gt;label6.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label6.ZOrder" xml:space="preserve">
<value>4</value> <value>6</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>
@ -295,7 +346,7 @@
<value>groupBox1</value> <value>groupBox1</value>
</data> </data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>5</value> <value>7</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>
@ -406,7 +457,7 @@
<value>611, 259</value> <value>611, 259</value>
</data> </data>
<data name="$this.Text" xml:space="preserve"> <data name="$this.Text" xml:space="preserve">
<value>Edit custom configuration server</value> <value>Custom configuration server</value>
</data> </data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>AddServer2Form</value> <value>AddServer2Form</value>

View file

@ -118,7 +118,10 @@
<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>
<data name="$this.Text" xml:space="preserve"> <data name="$this.Text" xml:space="preserve">
<value>编辑自定义配置服务器</value> <value>自定义配置</value>
</data>
<data name="btnBrowse.Text" xml:space="preserve">
<value>浏览(&amp;B)</value>
</data> </data>
<data name="btnClose.Text" xml:space="preserve"> <data name="btnClose.Text" xml:space="preserve">
<value>取消(&amp;C)</value> <value>取消(&amp;C)</value>
@ -129,6 +132,9 @@
<data name="groupBox1.Text" xml:space="preserve"> <data name="groupBox1.Text" xml:space="preserve">
<value>服务器</value> <value>服务器</value>
</data> </data>
<data name="labCoreType.Text" xml:space="preserve">
<value>Core类型</value>
</data>
<data name="label1.Text" xml:space="preserve"> <data name="label1.Text" xml:space="preserve">
<value>地址(address)</value> <value>地址(address)</value>
</data> </data>

View file

@ -31,36 +31,62 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddServerForm)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddServerForm));
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.btnGUID = new System.Windows.Forms.Button(); this.panSocks = new System.Windows.Forms.Panel();
this.label13 = new System.Windows.Forms.Label(); this.label17 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label(); this.txtSecurity4 = new System.Windows.Forms.TextBox();
this.cmbSecurity = new System.Windows.Forms.ComboBox(); this.label18 = new System.Windows.Forms.Label();
this.txtRemarks = new System.Windows.Forms.TextBox(); this.txtId4 = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label(); this.panSs = new System.Windows.Forms.Panel();
this.label5 = new System.Windows.Forms.Label(); this.txtId3 = new System.Windows.Forms.TextBox();
this.txtAlterId = new System.Windows.Forms.TextBox(); this.label15 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label(); this.cmbSecurity3 = new System.Windows.Forms.ComboBox();
this.txtId = new System.Windows.Forms.TextBox(); 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.label3 = new System.Windows.Forms.Label();
this.txtPort = new System.Windows.Forms.TextBox(); this.txtId = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label(); this.btnGUID = new System.Windows.Forms.Button();
this.txtAddress = new System.Windows.Forms.TextBox(); 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.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.btnOK = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel(); this.panTop = new System.Windows.Forms.Panel();
this.menuServer = new System.Windows.Forms.MenuStrip(); this.panTran = new System.Windows.Forms.Panel();
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.transportControl = new v2rayN.Forms.ServerTransportControl(); this.transportControl = new v2rayN.Forms.ServerTransportControl();
this.cmbCoreType = new System.Windows.Forms.ComboBox();
this.labCoreType = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.panel2.SuspendLayout(); this.panSocks.SuspendLayout();
this.menuServer.SuspendLayout(); this.panSs.SuspendLayout();
this.panel3.SuspendLayout(); this.panTrojan.SuspendLayout();
this.panVless.SuspendLayout();
this.panVmess.SuspendLayout();
this.panAddr.SuspendLayout();
this.panBottom.SuspendLayout();
this.panTran.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// btnClose // btnClose
@ -73,25 +99,189 @@
// //
// groupBox1 // groupBox1
// //
this.groupBox1.Controls.Add(this.btnGUID); this.groupBox1.Controls.Add(this.panSocks);
this.groupBox1.Controls.Add(this.label13); this.groupBox1.Controls.Add(this.panSs);
this.groupBox1.Controls.Add(this.label8); this.groupBox1.Controls.Add(this.panTrojan);
this.groupBox1.Controls.Add(this.cmbSecurity); this.groupBox1.Controls.Add(this.panVless);
this.groupBox1.Controls.Add(this.txtRemarks); this.groupBox1.Controls.Add(this.panVmess);
this.groupBox1.Controls.Add(this.label6); this.groupBox1.Controls.Add(this.panAddr);
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);
resources.ApplyResources(this.groupBox1, "groupBox1"); resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false; 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 // btnGUID
// //
resources.ApplyResources(this.btnGUID, "btnGUID"); resources.ApplyResources(this.btnGUID, "btnGUID");
@ -99,16 +289,21 @@
this.btnGUID.UseVisualStyleBackColor = true; this.btnGUID.UseVisualStyleBackColor = true;
this.btnGUID.Click += new System.EventHandler(this.btnGUID_Click); this.btnGUID.Click += new System.EventHandler(this.btnGUID_Click);
// //
// label13 // label4
// //
resources.ApplyResources(this.label13, "label13"); resources.ApplyResources(this.label4, "label4");
this.label13.Name = "label13"; this.label4.Name = "label4";
// //
// label8 // label8
// //
resources.ApplyResources(this.label8, "label8"); resources.ApplyResources(this.label8, "label8");
this.label8.Name = "label8"; this.label8.Name = "label8";
// //
// txtAlterId
//
resources.ApplyResources(this.txtAlterId, "txtAlterId");
this.txtAlterId.Name = "txtAlterId";
//
// cmbSecurity // cmbSecurity
// //
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
@ -116,67 +311,60 @@
resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
this.cmbSecurity.Name = "cmbSecurity"; this.cmbSecurity.Name = "cmbSecurity";
// //
// txtRemarks // label5
// //
resources.ApplyResources(this.txtRemarks, "txtRemarks"); resources.ApplyResources(this.label5, "label5");
this.txtRemarks.Name = "txtRemarks"; 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 // label6
// //
resources.ApplyResources(this.label6, "label6"); resources.ApplyResources(this.label6, "label6");
this.label6.Name = "label6"; this.label6.Name = "label6";
// //
// label5 // label1
// //
resources.ApplyResources(this.label5, "label5"); resources.ApplyResources(this.label1, "label1");
this.label5.Name = "label5"; this.label1.Name = "label1";
//
// 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";
// //
// txtAddress // txtAddress
// //
resources.ApplyResources(this.txtAddress, "txtAddress"); resources.ApplyResources(this.txtAddress, "txtAddress");
this.txtAddress.Name = "txtAddress"; this.txtAddress.Name = "txtAddress";
// //
// label1 // label2
// //
resources.ApplyResources(this.label1, "label1"); resources.ApplyResources(this.label2, "label2");
this.label1.Name = "label1"; this.label2.Name = "label2";
// //
// panel2 // txtPort
// //
this.panel2.Controls.Add(this.btnClose); resources.ApplyResources(this.txtPort, "txtPort");
this.panel2.Controls.Add(this.btnOK); this.txtPort.Name = "txtPort";
resources.ApplyResources(this.panel2, "panel2"); //
this.panel2.Name = "panel2"; // 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 // btnOK
// //
@ -185,56 +373,16 @@
this.btnOK.UseVisualStyleBackColor = true; this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.btnOK_Click); this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
// //
// panel1 // panTop
// //
resources.ApplyResources(this.panel1, "panel1"); resources.ApplyResources(this.panTop, "panTop");
this.panel1.Name = "panel1"; this.panTop.Name = "panTop";
// //
// menuServer // panTran
// //
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.panTran.Controls.Add(this.transportControl);
this.MenuItem1}); resources.ApplyResources(this.panTran, "panTran");
resources.ApplyResources(this.menuServer, "menuServer"); this.panTran.Name = "panTran";
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";
// //
// transportControl // transportControl
// //
@ -242,27 +390,46 @@
resources.ApplyResources(this.transportControl, "transportControl"); resources.ApplyResources(this.transportControl, "transportControl");
this.transportControl.Name = "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 // 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.panTran);
this.Controls.Add(this.panel2); this.Controls.Add(this.panBottom);
this.Controls.Add(this.panel1); this.Controls.Add(this.panTop);
this.Controls.Add(this.menuServer);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Name = "AddServerForm"; this.Name = "AddServerForm";
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.panSocks.ResumeLayout(false);
this.panel2.ResumeLayout(false); this.panSocks.PerformLayout();
this.menuServer.ResumeLayout(false); this.panSs.ResumeLayout(false);
this.menuServer.PerformLayout(); this.panSs.PerformLayout();
this.panel3.ResumeLayout(false); 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.ResumeLayout(false);
this.PerformLayout();
} }
@ -284,17 +451,38 @@
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.Label label8; private System.Windows.Forms.Label label8;
private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Panel panTop;
private System.Windows.Forms.Panel panel2; private System.Windows.Forms.Panel panBottom;
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.Button btnGUID; private System.Windows.Forms.Button btnGUID;
private System.Windows.Forms.Panel panel3; private System.Windows.Forms.Panel panTran;
private ServerTransportControl transportControl; 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;
} }
} }

View file

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.Windows.Forms; using System.Windows.Forms;
using v2rayN.Handler; using v2rayN.Handler;
using v2rayN.Mode; using v2rayN.Mode;
@ -7,7 +8,6 @@ namespace v2rayN.Forms
{ {
public partial class AddServerForm : BaseServerForm public partial class AddServerForm : BaseServerForm
{ {
public AddServerForm() public AddServerForm()
{ {
InitializeComponent(); InitializeComponent();
@ -15,8 +15,46 @@ namespace v2rayN.Forms
private void AddServerForm_Load(object sender, EventArgs e) private void AddServerForm_Load(object sender, EventArgs e)
{ {
this.Text = ((EConfigType)eConfigType).ToString();
cmbSecurity.Items.AddRange(Global.vmessSecuritys.ToArray()); 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) if (vmessItem != null)
{ {
@ -35,41 +73,122 @@ namespace v2rayN.Forms
/// </summary> /// </summary>
private void BindingServer() private void BindingServer()
{ {
txtRemarks.Text = vmessItem.remarks;
txtAddress.Text = vmessItem.address; txtAddress.Text = vmessItem.address;
txtPort.Text = vmessItem.port.ToString(); txtPort.Text = vmessItem.port.ToString();
txtId.Text = vmessItem.id;
txtAlterId.Text = vmessItem.alterId.ToString(); switch (eConfigType)
cmbSecurity.Text = vmessItem.security; {
txtRemarks.Text = vmessItem.remarks; case EConfigType.Vmess:
// BindingCoreType(cmbCoreType, vmessItem); 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); transportControl.BindingServer(vmessItem);
} }
/// <summary> /// <summary>
/// 清除设置 /// 清除设置
/// </summary> /// </summary>
private void ClearServer() private void ClearServer()
{ {
txtRemarks.Text = "";
txtAddress.Text = ""; txtAddress.Text = "";
txtPort.Text = ""; txtPort.Text = "";
txtId.Text = "";
txtAlterId.Text = "0"; switch (eConfigType)
cmbSecurity.Text = Global.DefaultSecurity; {
txtRemarks.Text = ""; 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); transportControl.ClearServer(vmessItem);
} }
private void btnOK_Click(object sender, EventArgs e) private void btnOK_Click(object sender, EventArgs e)
{ {
string remarks = txtRemarks.Text;
string address = txtAddress.Text; string address = txtAddress.Text;
string port = txtPort.Text; string port = txtPort.Text;
string id = txtId.Text;
string alterId = txtAlterId.Text; string id = string.Empty;
string security = cmbSecurity.Text; string alterId = string.Empty;
string remarks = txtRemarks.Text; 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)) if (Utils.IsNullOrEmpty(address))
{ {
@ -81,23 +200,69 @@ namespace v2rayN.Forms
UI.Show(UIRes.I18N("FillCorrectServerPort")); UI.Show(UIRes.I18N("FillCorrectServerPort"));
return; return;
} }
if (Utils.IsNullOrEmpty(id)) if (eConfigType == EConfigType.Shadowsocks)
{ {
UI.Show(UIRes.I18N("FillUUID")); if (Utils.IsNullOrEmpty(id))
return; {
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(); transportControl.EndBindingServer();
vmessItem.remarks = remarks;
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.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; this.DialogResult = DialogResult.OK;
} }
@ -105,110 +270,18 @@ namespace v2rayN.Forms
{ {
UI.ShowWarning(UIRes.I18N("OperationFailed")); UI.ShowWarning(UIRes.I18N("OperationFailed"));
} }
} }
private void btnGUID_Click(object sender, EventArgs e) 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) private void btnClose_Click(object sender, EventArgs e)
{ {
this.DialogResult = DialogResult.Cancel; this.DialogResult = DialogResult.Cancel;
} }
#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 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);
}
/// <summary>
/// 从剪贴板导入URL
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -120,93 +120,109 @@
<data name="btnClose.Text" xml:space="preserve"> <data name="btnClose.Text" xml:space="preserve">
<value>取消(&amp;C)</value> <value>取消(&amp;C)</value>
</data> </data>
<data name="groupBox1.Text" xml:space="preserve">
<value>服务器</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>None</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
<value>270, 156</value>
</data>
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
<value>115, 61</value>
</data>
<data name="label17.Size" type="System.Drawing.Size, System.Drawing">
<value>77, 12</value>
</data>
<data name="label17.Text" xml:space="preserve">
<value>用户名(可选)</value>
</data>
<data name="label18.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 12</value>
</data>
<data name="label18.Text" xml:space="preserve">
<value>密码(可选)</value>
</data>
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>None</value>
</data>
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 147</value>
</data>
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
<value>137, 78</value>
</data>
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 12</value>
</data>
<data name="label15.Text" xml:space="preserve">
<value>密码(password)</value>
</data>
<data name="label16.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 12</value>
</data>
<data name="label16.Text" xml:space="preserve">
<value>加密方式(encryption)</value>
</data>
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 12</value>
</data>
<data name="label12.Text" xml:space="preserve">
<value>密码(password)</value>
</data>
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 12</value>
</data>
<data name="label14.Text" xml:space="preserve">
<value>流控(flow)</value>
</data>
<data name="panVless.Size" type="System.Drawing.Size, System.Drawing">
<value>110, 52</value>
</data>
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 12</value>
</data>
<data name="label7.Text" xml:space="preserve">
<value>用户ID(id)</value>
</data>
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 12</value>
</data>
<data name="label9.Text" xml:space="preserve">
<value>流控(flow)</value>
</data>
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 12</value>
</data>
<data name="label10.Text" xml:space="preserve">
<value>加密(encryption)</value>
</data>
<data name="button1.Text" xml:space="preserve">
<value>生成</value>
</data>
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
<value>71, 12</value>
</data>
<data name="label11.Text" xml:space="preserve">
<value>*非空(none)</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 12</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>用户ID(id)</value>
</data>
<data name="btnGUID.Text" xml:space="preserve"> <data name="btnGUID.Text" xml:space="preserve">
<value>生成(&amp;G)</value> <value>生成(&amp;G)</value>
</data> </data>
<data name="label13.Text" xml:space="preserve"> <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
<value>*手填,方便识别管理</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 12</value>
</data>
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 12</value> <value>95, 12</value>
</data> </data>
<data name="label21.Size" type="System.Drawing.Size, System.Drawing"> <data name="label4.Text" xml:space="preserve">
<value>167, 12</value> <value>额外ID(alterId)</value>
</data>
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
<value>180, 7</value>
</data>
<data name="label9.Location" type="System.Drawing.Point, System.Drawing">
<value>350, 36</value>
</data>
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
<value>143, 12</value>
</data>
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 12</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>211, 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="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="label14.Size" type="System.Drawing.Size, System.Drawing">
<value>161, 12</value>
</data>
<data name="label15.Location" type="System.Drawing.Point, System.Drawing">
<value>9, 237</value>
</data>
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
<value>107, 12</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="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="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="cmbHeaderType.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 67</value>
</data> </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>
@ -215,40 +231,22 @@
<value>*随便选,建议(auto)</value> <value>*随便选,建议(auto)</value>
</data> </data>
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing"> <data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 143</value> <value>126, 65</value>
</data> </data>
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing"> <data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
<value>211, 20</value> <value>211, 20</value>
</data> </data>
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 12</value>
</data>
<data name="label6.Text" xml:space="preserve">
<value>别名(remarks)</value>
</data>
<data name="label5.Size" type="System.Drawing.Size, System.Drawing"> <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 12</value> <value>113, 12</value>
</data> </data>
<data name="label5.Text" xml:space="preserve"> <data name="label5.Text" xml:space="preserve">
<value>加密方式(security)</value> <value>加密方式(security)</value>
</data> </data>
<data name="label4.Size" type="System.Drawing.Size, System.Drawing"> <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 12</value> <value>83, 12</value>
</data> </data>
<data name="label4.Text" xml:space="preserve"> <data name="label6.Text" xml:space="preserve">
<value>额外ID(alterId)</value> <value>别名(remarks)</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 12</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>用户ID(id)</value>
</data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 12</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>端口(port)</value>
</data> </data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing"> <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 12</value> <value>83, 12</value>
@ -256,40 +254,22 @@
<data name="label1.Text" xml:space="preserve"> <data name="label1.Text" xml:space="preserve">
<value>地址(address)</value> <value>地址(address)</value>
</data> </data>
<data name="groupBox1.Text" xml:space="preserve"> <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>服务器</value> <value>65, 12</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>端口(port)</value>
</data> </data>
<data name="btnOK.Text" xml:space="preserve"> <data name="btnOK.Text" xml:space="preserve">
<value>确定(&amp;O)</value> <value>确定(&amp;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>
<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>编辑或添加[VMess]服务器</value> <value>编辑或添加[VMess]服务器</value>
</data> </data>
<data name="btnGUID5.Text" xml:space="preserve">
<value>生成</value>
</data>
<data name="labCoreType.Text" xml:space="preserve">
<value>Core类型</value>
</data>
</root> </root>

View file

@ -8,11 +8,12 @@ namespace v2rayN.Forms
{ {
public VmessItem vmessItem = null; public VmessItem vmessItem = null;
public string groupId; public string groupId;
public EConfigType eConfigType;
public BaseServerForm() public BaseServerForm()
{ {
InitializeComponent(); InitializeComponent();
} }
} }
} }

View file

@ -496,7 +496,7 @@ namespace v2rayN.Forms
groupId = string.Empty; groupId = string.Empty;
//groupId = tabGroup.TabPages[tabGroup.SelectedIndex].Name; //groupId = tabGroup.TabPages[tabGroup.SelectedIndex].Name;
groupId = tabGroup.SelectedTab.Name; groupId = tabGroup.SelectedTab.Name;
RefreshServers(); RefreshServers();
lvServers.Focus(); lvServers.Focus();
@ -579,29 +579,17 @@ namespace v2rayN.Forms
private void ShowServerForm(int configType, int index) private void ShowServerForm(int configType, int index)
{ {
BaseServerForm fm; BaseServerForm fm;
switch (configType) if (configType == (int)EConfigType.Custom)
{ {
case (int)EConfigType.Vmess: fm = new AddServer2Form();
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;
} }
else
{
fm = new AddServerForm();
}
fm.vmessItem = index >= 0 ? lstVmess[index] : null; fm.vmessItem = index >= 0 ? lstVmess[index] : null;
fm.groupId = groupId; fm.groupId = groupId;
fm.eConfigType = (EConfigType)configType;
if (fm.ShowDialog() == DialogResult.OK) if (fm.ShowDialog() == DialogResult.OK)
{ {
RefreshServers(); RefreshServers();
@ -714,7 +702,7 @@ namespace v2rayN.Forms
{ {
return; return;
} }
if (ConfigHandler.CopyServer(ref config, lstVmess[index]) == 0) if (ConfigHandler.CopyServer(ref config, lstSelecteds) == 0)
{ {
RefreshServers(); RefreshServers();
} }

View file

@ -75,14 +75,25 @@
this.txtautoUpdateInterval = new System.Windows.Forms.TextBox(); this.txtautoUpdateInterval = new System.Windows.Forms.TextBox();
this.label15 = new System.Windows.Forms.Label(); 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.label4 = new System.Windows.Forms.Label();
this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox(); this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox();
this.cbFreshrate = new System.Windows.Forms.ComboBox(); this.cbFreshrate = new System.Windows.Forms.ComboBox();
this.lbFreshrate = new System.Windows.Forms.Label(); this.lbFreshrate = new System.Windows.Forms.Label();
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.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.tabPage3 = new System.Windows.Forms.TabPage();
this.groupBox2 = new System.Windows.Forms.GroupBox(); this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label13 = new System.Windows.Forms.Label(); this.label13 = new System.Windows.Forms.Label();
@ -97,6 +108,7 @@
this.tabPage2.SuspendLayout(); this.tabPage2.SuspendLayout();
this.tabPage6.SuspendLayout(); this.tabPage6.SuspendLayout();
this.tabPage7.SuspendLayout(); this.tabPage7.SuspendLayout();
this.tabPageCoreType.SuspendLayout();
this.tabPage3.SuspendLayout(); this.tabPage3.SuspendLayout();
this.groupBox2.SuspendLayout(); this.groupBox2.SuspendLayout();
this.panel2.SuspendLayout(); this.panel2.SuspendLayout();
@ -116,6 +128,7 @@
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.tabPageCoreType);
this.tabControl1.Controls.Add(this.tabPage3); this.tabControl1.Controls.Add(this.tabPage3);
resources.ApplyResources(this.tabControl1, "tabControl1"); resources.ApplyResources(this.tabControl1, "tabControl1");
this.tabControl1.Name = "tabControl1"; this.tabControl1.Name = "tabControl1";
@ -382,8 +395,6 @@
this.tabPage7.Controls.Add(this.txtautoUpdateInterval); this.tabPage7.Controls.Add(this.txtautoUpdateInterval);
this.tabPage7.Controls.Add(this.label15); 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.label4);
this.tabPage7.Controls.Add(this.chkKeepOlderDedupl); this.tabPage7.Controls.Add(this.chkKeepOlderDedupl);
this.tabPage7.Controls.Add(this.cbFreshrate); this.tabPage7.Controls.Add(this.cbFreshrate);
this.tabPage7.Controls.Add(this.lbFreshrate); this.tabPage7.Controls.Add(this.lbFreshrate);
@ -429,18 +440,6 @@
this.chkIgnoreGeoUpdateCore.Name = "chkIgnoreGeoUpdateCore"; this.chkIgnoreGeoUpdateCore.Name = "chkIgnoreGeoUpdateCore";
this.chkIgnoreGeoUpdateCore.UseVisualStyleBackColor = true; 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 // chkKeepOlderDedupl
// //
resources.ApplyResources(this.chkKeepOlderDedupl, "chkKeepOlderDedupl"); resources.ApplyResources(this.chkKeepOlderDedupl, "chkKeepOlderDedupl");
@ -477,6 +476,96 @@
this.chkAutoRun.Name = "chkAutoRun"; this.chkAutoRun.Name = "chkAutoRun";
this.chkAutoRun.UseVisualStyleBackColor = true; 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 // tabPage3
// //
this.tabPage3.Controls.Add(this.groupBox2); this.tabPage3.Controls.Add(this.groupBox2);
@ -548,6 +637,8 @@
this.tabPage6.PerformLayout(); this.tabPage6.PerformLayout();
this.tabPage7.ResumeLayout(false); this.tabPage7.ResumeLayout(false);
this.tabPage7.PerformLayout(); this.tabPage7.PerformLayout();
this.tabPageCoreType.ResumeLayout(false);
this.tabPageCoreType.PerformLayout();
this.tabPage3.ResumeLayout(false); this.tabPage3.ResumeLayout(false);
this.groupBox2.ResumeLayout(false); this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout(); this.groupBox2.PerformLayout();
@ -607,8 +698,6 @@
private System.Windows.Forms.LinkLabel linkDnsObjectDoc; private System.Windows.Forms.LinkLabel linkDnsObjectDoc;
private System.Windows.Forms.TextBox txtremoteDNS; private System.Windows.Forms.TextBox txtremoteDNS;
private System.Windows.Forms.Label label14; 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.CheckBox chkIgnoreGeoUpdateCore;
private System.Windows.Forms.TabPage tabPage3; private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.TextBox txtsystemProxyExceptions; private System.Windows.Forms.TextBox txtsystemProxyExceptions;
@ -620,5 +709,18 @@
private System.Windows.Forms.Button btnSetLoopback; private System.Windows.Forms.Button btnSetLoopback;
private System.Windows.Forms.CheckBox chkEnableAutoAdjustMainLvColWidth; private System.Windows.Forms.CheckBox chkEnableAutoAdjustMainLvColWidth;
private System.Windows.Forms.CheckBox chkEnableSecurityProtocolTls13; 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;
} }
} }

View file

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Windows.Forms; using System.Windows.Forms;
using v2rayN.Base; using v2rayN.Base;
@ -16,13 +17,13 @@ namespace v2rayN.Forms
private void OptionSettingForm_Load(object sender, EventArgs e) private void OptionSettingForm_Load(object sender, EventArgs e)
{ {
cmbCoreType.Items.AddRange(Global.coreTypes.ToArray());
InitBase(); InitBase();
InitKCP(); InitKCP();
InitGUI(); InitGUI();
InitCoreType();
} }
/// <summary> /// <summary>
@ -123,11 +124,40 @@ namespace v2rayN.Forms
} }
chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore; chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore;
cmbCoreType.SelectedIndex = (int)config.coreType;
txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString(); txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString();
chkEnableAutoAdjustMainLvColWidth.Checked = config.uiItem.enableAutoAdjustMainLvColWidth; chkEnableAutoAdjustMainLvColWidth.Checked = config.uiItem.enableAutoAdjustMainLvColWidth;
chkEnableSecurityProtocolTls13.Checked = config.enableSecurityProtocolTls13; chkEnableSecurityProtocolTls13.Checked = config.enableSecurityProtocolTls13;
} }
private void InitCoreType()
{
if (config.coreTypeItem == null)
{
config.coreTypeItem = new List<CoreTypeItem>();
}
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) private void btnOK_Click(object sender, EventArgs e)
{ {
if (SaveBase() != 0) if (SaveBase() != 0)
@ -146,6 +176,11 @@ namespace v2rayN.Forms
return; return;
} }
if (SaveCoreType() != 0)
{
return;
}
if (ConfigHandler.SaveConfig(ref config) == 0) if (ConfigHandler.SaveConfig(ref config) == 0)
{ {
this.DialogResult = DialogResult.OK; this.DialogResult = DialogResult.OK;
@ -308,7 +343,6 @@ namespace v2rayN.Forms
config.keepOlderDedupl = chkKeepOlderDedupl.Checked; config.keepOlderDedupl = chkKeepOlderDedupl.Checked;
config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked; config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked;
config.coreType = (ECoreType)cmbCoreType.SelectedIndex;
config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text); config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text);
config.uiItem.enableAutoAdjustMainLvColWidth = chkEnableAutoAdjustMainLvColWidth.Checked; config.uiItem.enableAutoAdjustMainLvColWidth = chkEnableAutoAdjustMainLvColWidth.Checked;
config.enableSecurityProtocolTls13 = chkEnableSecurityProtocolTls13.Checked; config.enableSecurityProtocolTls13 = chkEnableSecurityProtocolTls13.Checked;
@ -316,6 +350,17 @@ namespace v2rayN.Forms
return 0; 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) private void btnClose_Click(object sender, EventArgs e)
{ {
this.DialogResult = DialogResult.Cancel; this.DialogResult = DialogResult.Cancel;

View file

@ -637,7 +637,7 @@
<value>3, 3</value> <value>3, 3</value>
</data> </data>
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing"> <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>648, 421</value> <value>722, 421</value>
</data> </data>
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib"> <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
<value>6</value> <value>6</value>
@ -661,7 +661,7 @@
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tabPage1.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>654, 427</value> <value>728, 427</value>
</data> </data>
<data name="tabPage1.TabIndex" type="System.Int32, mscorlib"> <data name="tabPage1.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
@ -775,7 +775,7 @@
<value>4, 22</value> <value>4, 22</value>
</data> </data>
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
<value>654, 427</value> <value>728, 427</value>
</data> </data>
<data name="tabPage2.TabIndex" type="System.Int32, mscorlib"> <data name="tabPage2.TabIndex" type="System.Int32, mscorlib">
<value>4</value> <value>4</value>
@ -1117,7 +1117,7 @@
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tabPage6.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage6.Size" type="System.Drawing.Size, System.Drawing">
<value>654, 427</value> <value>728, 427</value>
</data> </data>
<data name="tabPage6.TabIndex" type="System.Int32, mscorlib"> <data name="tabPage6.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@ -1299,57 +1299,6 @@
<data name="&gt;&gt;chkIgnoreGeoUpdateCore.ZOrder" xml:space="preserve"> <data name="&gt;&gt;chkIgnoreGeoUpdateCore.ZOrder" xml:space="preserve">
<value>5</value> <value>5</value>
</data> </data>
<data name="cmbCoreType.Location" type="System.Drawing.Point, System.Drawing">
<value>325, 130</value>
</data>
<data name="cmbCoreType.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 20</value>
</data>
<data name="cmbCoreType.TabIndex" type="System.Int32, mscorlib">
<value>34</value>
</data>
<data name="&gt;&gt;cmbCoreType.Name" xml:space="preserve">
<value>cmbCoreType</value>
</data>
<data name="&gt;&gt;cmbCoreType.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="&gt;&gt;cmbCoreType.Parent" xml:space="preserve">
<value>tabPage7</value>
</data>
<data name="&gt;&gt;cmbCoreType.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
<value>253, 134</value>
</data>
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 12</value>
</data>
<data name="label4.TabIndex" type="System.Int32, mscorlib">
<value>35</value>
</data>
<data name="label4.Text" xml:space="preserve">
<value>Core Type</value>
</data>
<data name="&gt;&gt;label4.Name" xml:space="preserve">
<value>label4</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;label4.Parent" xml:space="preserve">
<value>tabPage7</value>
</data>
<data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="chkKeepOlderDedupl.AutoSize" type="System.Boolean, mscorlib"> <data name="chkKeepOlderDedupl.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
@ -1378,7 +1327,7 @@
<value>tabPage7</value> <value>tabPage7</value>
</data> </data>
<data name="&gt;&gt;chkKeepOlderDedupl.ZOrder" xml:space="preserve"> <data name="&gt;&gt;chkKeepOlderDedupl.ZOrder" xml:space="preserve">
<value>8</value> <value>6</value>
</data> </data>
<data name="cbFreshrate.Location" type="System.Drawing.Point, System.Drawing"> <data name="cbFreshrate.Location" type="System.Drawing.Point, System.Drawing">
<value>161, 84</value> <value>161, 84</value>
@ -1399,7 +1348,7 @@
<value>tabPage7</value> <value>tabPage7</value>
</data> </data>
<data name="&gt;&gt;cbFreshrate.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbFreshrate.ZOrder" xml:space="preserve">
<value>9</value> <value>7</value>
</data> </data>
<data name="lbFreshrate.AutoSize" type="System.Boolean, mscorlib"> <data name="lbFreshrate.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -1429,7 +1378,7 @@
<value>tabPage7</value> <value>tabPage7</value>
</data> </data>
<data name="&gt;&gt;lbFreshrate.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lbFreshrate.ZOrder" xml:space="preserve">
<value>10</value> <value>8</value>
</data> </data>
<data name="chkEnableStatistics.AutoSize" type="System.Boolean, mscorlib"> <data name="chkEnableStatistics.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -1459,7 +1408,7 @@
<value>tabPage7</value> <value>tabPage7</value>
</data> </data>
<data name="&gt;&gt;chkEnableStatistics.ZOrder" xml:space="preserve"> <data name="&gt;&gt;chkEnableStatistics.ZOrder" xml:space="preserve">
<value>11</value> <value>9</value>
</data> </data>
<data name="chkAllowLANConn.AutoSize" type="System.Boolean, mscorlib"> <data name="chkAllowLANConn.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -1486,7 +1435,7 @@
<value>tabPage7</value> <value>tabPage7</value>
</data> </data>
<data name="&gt;&gt;chkAllowLANConn.ZOrder" xml:space="preserve"> <data name="&gt;&gt;chkAllowLANConn.ZOrder" xml:space="preserve">
<value>12</value> <value>10</value>
</data> </data>
<data name="chkAutoRun.AutoSize" type="System.Boolean, mscorlib"> <data name="chkAutoRun.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -1513,7 +1462,7 @@
<value>tabPage7</value> <value>tabPage7</value>
</data> </data>
<data name="&gt;&gt;chkAutoRun.ZOrder" xml:space="preserve"> <data name="&gt;&gt;chkAutoRun.ZOrder" xml:space="preserve">
<value>13</value> <value>11</value>
</data> </data>
<data name="tabPage7.Location" type="System.Drawing.Point, System.Drawing"> <data name="tabPage7.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value> <value>4, 22</value>
@ -1522,7 +1471,7 @@
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tabPage7.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage7.Size" type="System.Drawing.Size, System.Drawing">
<value>654, 427</value> <value>728, 427</value>
</data> </data>
<data name="tabPage7.TabIndex" type="System.Int32, mscorlib"> <data name="tabPage7.TabIndex" type="System.Int32, mscorlib">
<value>3</value> <value>3</value>
@ -1542,6 +1491,339 @@
<data name="&gt;&gt;tabPage7.ZOrder" xml:space="preserve"> <data name="&gt;&gt;tabPage7.ZOrder" xml:space="preserve">
<value>3</value> <value>3</value>
</data> </data>
<data name="cmbCoreType6.Location" type="System.Drawing.Point, System.Drawing">
<value>117, 172</value>
</data>
<data name="cmbCoreType6.Size" type="System.Drawing.Size, System.Drawing">
<value>143, 20</value>
</data>
<data name="cmbCoreType6.TabIndex" type="System.Int32, mscorlib">
<value>46</value>
</data>
<data name="&gt;&gt;cmbCoreType6.Name" xml:space="preserve">
<value>cmbCoreType6</value>
</data>
<data name="&gt;&gt;cmbCoreType6.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="&gt;&gt;cmbCoreType6.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;cmbCoreType6.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="labCoreType6.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labCoreType6.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labCoreType6.Location" type="System.Drawing.Point, System.Drawing">
<value>45, 176</value>
</data>
<data name="labCoreType6.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 12</value>
</data>
<data name="labCoreType6.TabIndex" type="System.Int32, mscorlib">
<value>47</value>
</data>
<data name="labCoreType6.Text" xml:space="preserve">
<value>Core Type</value>
</data>
<data name="&gt;&gt;labCoreType6.Name" xml:space="preserve">
<value>labCoreType6</value>
</data>
<data name="&gt;&gt;labCoreType6.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="&gt;&gt;labCoreType6.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;labCoreType6.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cmbCoreType5.Location" type="System.Drawing.Point, System.Drawing">
<value>117, 146</value>
</data>
<data name="cmbCoreType5.Size" type="System.Drawing.Size, System.Drawing">
<value>143, 20</value>
</data>
<data name="cmbCoreType5.TabIndex" type="System.Int32, mscorlib">
<value>44</value>
</data>
<data name="&gt;&gt;cmbCoreType5.Name" xml:space="preserve">
<value>cmbCoreType5</value>
</data>
<data name="&gt;&gt;cmbCoreType5.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="&gt;&gt;cmbCoreType5.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;cmbCoreType5.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="labCoreType5.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labCoreType5.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labCoreType5.Location" type="System.Drawing.Point, System.Drawing">
<value>45, 150</value>
</data>
<data name="labCoreType5.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 12</value>
</data>
<data name="labCoreType5.TabIndex" type="System.Int32, mscorlib">
<value>45</value>
</data>
<data name="labCoreType5.Text" xml:space="preserve">
<value>Core Type</value>
</data>
<data name="&gt;&gt;labCoreType5.Name" xml:space="preserve">
<value>labCoreType5</value>
</data>
<data name="&gt;&gt;labCoreType5.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="&gt;&gt;labCoreType5.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;labCoreType5.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="cmbCoreType4.Location" type="System.Drawing.Point, System.Drawing">
<value>117, 120</value>
</data>
<data name="cmbCoreType4.Size" type="System.Drawing.Size, System.Drawing">
<value>143, 20</value>
</data>
<data name="cmbCoreType4.TabIndex" type="System.Int32, mscorlib">
<value>42</value>
</data>
<data name="&gt;&gt;cmbCoreType4.Name" xml:space="preserve">
<value>cmbCoreType4</value>
</data>
<data name="&gt;&gt;cmbCoreType4.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="&gt;&gt;cmbCoreType4.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;cmbCoreType4.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="labCoreType4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labCoreType4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labCoreType4.Location" type="System.Drawing.Point, System.Drawing">
<value>45, 124</value>
</data>
<data name="labCoreType4.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 12</value>
</data>
<data name="labCoreType4.TabIndex" type="System.Int32, mscorlib">
<value>43</value>
</data>
<data name="labCoreType4.Text" xml:space="preserve">
<value>Core Type</value>
</data>
<data name="&gt;&gt;labCoreType4.Name" xml:space="preserve">
<value>labCoreType4</value>
</data>
<data name="&gt;&gt;labCoreType4.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="&gt;&gt;labCoreType4.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;labCoreType4.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="cmbCoreType3.Location" type="System.Drawing.Point, System.Drawing">
<value>117, 94</value>
</data>
<data name="cmbCoreType3.Size" type="System.Drawing.Size, System.Drawing">
<value>143, 20</value>
</data>
<data name="cmbCoreType3.TabIndex" type="System.Int32, mscorlib">
<value>40</value>
</data>
<data name="&gt;&gt;cmbCoreType3.Name" xml:space="preserve">
<value>cmbCoreType3</value>
</data>
<data name="&gt;&gt;cmbCoreType3.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="&gt;&gt;cmbCoreType3.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;cmbCoreType3.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="labCoreType3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labCoreType3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labCoreType3.Location" type="System.Drawing.Point, System.Drawing">
<value>45, 98</value>
</data>
<data name="labCoreType3.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 12</value>
</data>
<data name="labCoreType3.TabIndex" type="System.Int32, mscorlib">
<value>41</value>
</data>
<data name="labCoreType3.Text" xml:space="preserve">
<value>Core Type</value>
</data>
<data name="&gt;&gt;labCoreType3.Name" xml:space="preserve">
<value>labCoreType3</value>
</data>
<data name="&gt;&gt;labCoreType3.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="&gt;&gt;labCoreType3.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;labCoreType3.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="cmbCoreType2.Location" type="System.Drawing.Point, System.Drawing">
<value>117, 68</value>
</data>
<data name="cmbCoreType2.Size" type="System.Drawing.Size, System.Drawing">
<value>143, 20</value>
</data>
<data name="cmbCoreType2.TabIndex" type="System.Int32, mscorlib">
<value>38</value>
</data>
<data name="&gt;&gt;cmbCoreType2.Name" xml:space="preserve">
<value>cmbCoreType2</value>
</data>
<data name="&gt;&gt;cmbCoreType2.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="&gt;&gt;cmbCoreType2.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;cmbCoreType2.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="labCoreType2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labCoreType2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labCoreType2.Location" type="System.Drawing.Point, System.Drawing">
<value>45, 72</value>
</data>
<data name="labCoreType2.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 12</value>
</data>
<data name="labCoreType2.TabIndex" type="System.Int32, mscorlib">
<value>39</value>
</data>
<data name="labCoreType2.Text" xml:space="preserve">
<value>Core Type</value>
</data>
<data name="&gt;&gt;labCoreType2.Name" xml:space="preserve">
<value>labCoreType2</value>
</data>
<data name="&gt;&gt;labCoreType2.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="&gt;&gt;labCoreType2.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;labCoreType2.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="cmbCoreType1.Location" type="System.Drawing.Point, System.Drawing">
<value>117, 42</value>
</data>
<data name="cmbCoreType1.Size" type="System.Drawing.Size, System.Drawing">
<value>143, 20</value>
</data>
<data name="cmbCoreType1.TabIndex" type="System.Int32, mscorlib">
<value>36</value>
</data>
<data name="&gt;&gt;cmbCoreType1.Name" xml:space="preserve">
<value>cmbCoreType1</value>
</data>
<data name="&gt;&gt;cmbCoreType1.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="&gt;&gt;cmbCoreType1.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;cmbCoreType1.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="labCoreType1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labCoreType1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labCoreType1.Location" type="System.Drawing.Point, System.Drawing">
<value>45, 46</value>
</data>
<data name="labCoreType1.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 12</value>
</data>
<data name="labCoreType1.TabIndex" type="System.Int32, mscorlib">
<value>37</value>
</data>
<data name="labCoreType1.Text" xml:space="preserve">
<value>Core Type</value>
</data>
<data name="&gt;&gt;labCoreType1.Name" xml:space="preserve">
<value>labCoreType1</value>
</data>
<data name="&gt;&gt;labCoreType1.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="&gt;&gt;labCoreType1.Parent" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;labCoreType1.ZOrder" xml:space="preserve">
<value>11</value>
</data>
<data name="tabPageCoreType.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tabPageCoreType.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tabPageCoreType.Size" type="System.Drawing.Size, System.Drawing">
<value>728, 427</value>
</data>
<data name="tabPageCoreType.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="tabPageCoreType.Text" xml:space="preserve">
<value>CoreType settings</value>
</data>
<data name="&gt;&gt;tabPageCoreType.Name" xml:space="preserve">
<value>tabPageCoreType</value>
</data>
<data name="&gt;&gt;tabPageCoreType.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tabPageCoreType.Parent" xml:space="preserve">
<value>tabControl1</value>
</data>
<data name="&gt;&gt;tabPageCoreType.ZOrder" xml:space="preserve">
<value>4</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>
@ -1636,7 +1918,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing"> <data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>654, 427</value> <value>728, 427</value>
</data> </data>
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib"> <data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
<value>42</value> <value>42</value>
@ -1660,7 +1942,7 @@
<value>4, 22</value> <value>4, 22</value>
</data> </data>
<data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing">
<value>654, 427</value> <value>728, 427</value>
</data> </data>
<data name="tabPage3.TabIndex" type="System.Int32, mscorlib"> <data name="tabPage3.TabIndex" type="System.Int32, mscorlib">
<value>5</value> <value>5</value>
@ -1678,7 +1960,7 @@
<value>tabControl1</value> <value>tabControl1</value>
</data> </data>
<data name="&gt;&gt;tabPage3.ZOrder" xml:space="preserve"> <data name="&gt;&gt;tabPage3.ZOrder" xml:space="preserve">
<value>4</value> <value>5</value>
</data> </data>
<data name="tabControl1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="tabControl1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value> <value>Fill</value>
@ -1687,7 +1969,7 @@
<value>0, 10</value> <value>0, 10</value>
</data> </data>
<data name="tabControl1.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>662, 453</value> <value>736, 453</value>
</data> </data>
<data name="tabControl1.TabIndex" type="System.Int32, mscorlib"> <data name="tabControl1.TabIndex" type="System.Int32, mscorlib">
<value>10</value> <value>10</value>
@ -1735,7 +2017,7 @@
<value>0, 463</value> <value>0, 463</value>
</data> </data>
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing"> <data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
<value>662, 60</value> <value>736, 60</value>
</data> </data>
<data name="panel2.TabIndex" type="System.Int32, mscorlib"> <data name="panel2.TabIndex" type="System.Int32, mscorlib">
<value>11</value> <value>11</value>
@ -1759,7 +2041,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>662, 10</value> <value>736, 10</value>
</data> </data>
<data name="panel1.TabIndex" type="System.Int32, mscorlib"> <data name="panel1.TabIndex" type="System.Int32, mscorlib">
<value>9</value> <value>9</value>
@ -1783,7 +2065,7 @@
<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>662, 523</value> <value>736, 523</value>
</data> </data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value> <value>4, 4, 4, 4</value>

View file

@ -334,4 +334,7 @@
<data name="$this.Text" xml:space="preserve"> <data name="$this.Text" xml:space="preserve">
<value>参数设置</value> <value>参数设置</value>
</data> </data>
<data name="tabPageCoreType.Text" xml:space="preserve">
<value> Core类型设置 </value>
</data>
</root> </root>

View file

@ -199,8 +199,7 @@ namespace v2rayN
public static readonly List<string> xtlsFlows = new List<string> { "", "xtls-rprx-origin", "xtls-rprx-origin-udp443", "xtls-rprx-direct", "xtls-rprx-direct-udp443" }; public static readonly List<string> xtlsFlows = new List<string> { "", "xtls-rprx-origin", "xtls-rprx-origin-udp443", "xtls-rprx-direct", "xtls-rprx-direct-udp443" };
public static readonly List<string> networks = new List<string> { "tcp", "kcp", "ws", "h2", "quic", "grpc" }; public static readonly List<string> networks = new List<string> { "tcp", "kcp", "ws", "h2", "quic", "grpc" };
public static readonly List<string> kcpHeaderTypes = new List<string> { "srtp", "utp", "wechat-video", "dtls", "wireguard" }; public static readonly List<string> kcpHeaderTypes = new List<string> { "srtp", "utp", "wechat-video", "dtls", "wireguard" };
public static readonly List<string> coreTypes = new List<string> { "v2fly_core", "Xray_core" }; public static readonly List<string> coreTypes = new List<string> { "v2fly", "Xray" };
public const string GrpcgunMode = "gun"; public const string GrpcgunMode = "gun";
public const string GrpcmultiMode = "multi"; public const string GrpcmultiMode = "multi";

View file

@ -250,35 +250,17 @@ 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 CopyServer(ref Config config, VmessItem item) public static int CopyServer(ref Config config, List<VmessItem> 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); ToJsonFile(config);
return 0; return 0;

View file

@ -36,27 +36,10 @@ namespace v2rayN.Handler
/// </summary> /// </summary>
public void LoadV2ray(Config config) public void LoadV2ray(Config config)
{ {
if (config.coreType == ECoreType.v2fly_core)
{
lstV2ray = new List<string>
{
"wv2ray",
"v2ray"
};
coreUrl = Global.v2flyCoreUrl;
}
else
{
lstV2ray = new List<string>
{
"xray"
};
coreUrl = Global.xrayCoreUrl;
}
if (Global.reloadV2ray) if (Global.reloadV2ray)
{ {
var item = ConfigHandler.GetDefaultServer(ref config); var item = ConfigHandler.GetDefaultServer(ref config);
SetCore(config, item);
string fileName = Utils.GetPath(v2rayConfigRes); string fileName = Utils.GetPath(v2rayConfigRes);
if (V2rayConfigHandler.GenerateClientConfig(item, fileName, false, out string msg) != 0) if (V2rayConfigHandler.GenerateClientConfig(item, fileName, false, out string msg) != 0)
{ {
@ -334,5 +317,32 @@ namespace v2rayN.Handler
Utils.SaveLog(ex.Message, ex); 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<string>
{
"wv2ray",
"v2ray"
};
coreUrl = Global.v2flyCoreUrl;
}
else
{
lstV2ray = new List<string>
{
"xray"
};
coreUrl = Global.xrayCoreUrl;
}
}
} }
} }

View file

@ -120,10 +120,6 @@ namespace v2rayN.Mode
get; set; get; set;
} }
public ECoreType coreType
{
get; set;
}
public bool ignoreGeoUpdateCore public bool ignoreGeoUpdateCore
{ {
get; set; get; set;
@ -208,6 +204,12 @@ namespace v2rayN.Mode
{ {
get; set; get; set;
} }
public List<CoreTypeItem> coreTypeItem
{
get; set;
}
#endregion #endregion
#region function #region function
@ -256,7 +258,7 @@ namespace v2rayN.Mode
public List<string> GetShadowsocksSecuritys() public List<string> GetShadowsocksSecuritys()
{ {
if (coreType == ECoreType.v2fly_core) if (GetCoreType(EConfigType.Shadowsocks) == ECoreType.v2fly)
{ {
return Global.ssSecuritys; return Global.ssSecuritys;
} }
@ -283,6 +285,19 @@ namespace v2rayN.Mode
return groupItem.Where(it => it.id == groupId).FirstOrDefault()?.remarks; 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 #endregion
} }
@ -570,6 +585,10 @@ namespace v2rayN.Mode
{ {
get; set; get; set;
} = string.Empty; } = string.Empty;
public ECoreType? coreType
{
get; set;
}
} }
[Serializable] [Serializable]
@ -782,4 +801,19 @@ namespace v2rayN.Mode
get; set; get; set;
} }
} }
[Serializable]
public class CoreTypeItem
{
public EConfigType configType
{
get; set;
}
public ECoreType coreType
{
get; set;
}
}
} }

View file

@ -3,7 +3,7 @@ namespace v2rayN.Mode
{ {
public enum ECoreType public enum ECoreType
{ {
v2fly_core = 0, v2fly = 1,
Xray_core = 1 Xray = 2
} }
} }