diff --git a/v2rayN/v2rayN/Forms/ServerTransportControl.Designer.cs b/v2rayN/v2rayN/Forms/ServerTransportControl.Designer.cs
index 04f0f374..ba748ccd 100644
--- a/v2rayN/v2rayN/Forms/ServerTransportControl.Designer.cs
+++ b/v2rayN/v2rayN/Forms/ServerTransportControl.Designer.cs
@@ -31,6 +31,7 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerTransportControl));
this.gbTransport = new System.Windows.Forms.GroupBox();
this.panTlsMore = new System.Windows.Forms.Panel();
+ this.clbAlpn = new System.Windows.Forms.CheckedListBox();
this.label1 = new System.Windows.Forms.Label();
this.txtSNI = new System.Windows.Forms.TextBox();
this.labSNI = new System.Windows.Forms.Label();
@@ -50,7 +51,6 @@
this.labHeaderType = new System.Windows.Forms.Label();
this.labRequestHost = new System.Windows.Forms.Label();
this.cmbHeaderType = new System.Windows.Forms.ComboBox();
- this.clbAlpn = new System.Windows.Forms.CheckedListBox();
this.gbTransport.SuspendLayout();
this.panTlsMore.SuspendLayout();
this.SuspendLayout();
@@ -87,6 +87,17 @@
resources.ApplyResources(this.panTlsMore, "panTlsMore");
this.panTlsMore.Name = "panTlsMore";
//
+ // clbAlpn
+ //
+ this.clbAlpn.CheckOnClick = true;
+ resources.ApplyResources(this.clbAlpn, "clbAlpn");
+ this.clbAlpn.FormattingEnabled = true;
+ this.clbAlpn.Items.AddRange(new object[] {
+ resources.GetString("clbAlpn.Items"),
+ resources.GetString("clbAlpn.Items1")});
+ this.clbAlpn.MultiColumn = true;
+ this.clbAlpn.Name = "clbAlpn";
+ //
// label1
//
resources.ApplyResources(this.label1, "label1");
@@ -132,13 +143,6 @@
//
this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbNetwork.FormattingEnabled = true;
- this.cmbNetwork.Items.AddRange(new object[] {
- resources.GetString("cmbNetwork.Items"),
- resources.GetString("cmbNetwork.Items1"),
- resources.GetString("cmbNetwork.Items2"),
- resources.GetString("cmbNetwork.Items3"),
- resources.GetString("cmbNetwork.Items4"),
- resources.GetString("cmbNetwork.Items5")});
resources.ApplyResources(this.cmbNetwork, "cmbNetwork");
this.cmbNetwork.Name = "cmbNetwork";
this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged);
@@ -200,28 +204,9 @@
//
this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbHeaderType.FormattingEnabled = true;
- this.cmbHeaderType.Items.AddRange(new object[] {
- resources.GetString("cmbHeaderType.Items"),
- resources.GetString("cmbHeaderType.Items1"),
- resources.GetString("cmbHeaderType.Items2"),
- resources.GetString("cmbHeaderType.Items3"),
- resources.GetString("cmbHeaderType.Items4"),
- resources.GetString("cmbHeaderType.Items5"),
- resources.GetString("cmbHeaderType.Items6")});
resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType");
this.cmbHeaderType.Name = "cmbHeaderType";
//
- // clbAlpn
- //
- this.clbAlpn.CheckOnClick = true;
- resources.ApplyResources(this.clbAlpn, "clbAlpn");
- this.clbAlpn.FormattingEnabled = true;
- this.clbAlpn.Items.AddRange(new object[] {
- resources.GetString("clbAlpn.Items"),
- resources.GetString("clbAlpn.Items1")});
- this.clbAlpn.MultiColumn = true;
- this.clbAlpn.Name = "clbAlpn";
- //
// ServerTransportControl
//
resources.ApplyResources(this, "$this");
diff --git a/v2rayN/v2rayN/Forms/ServerTransportControl.cs b/v2rayN/v2rayN/Forms/ServerTransportControl.cs
index 03b36a78..dc4da30b 100644
--- a/v2rayN/v2rayN/Forms/ServerTransportControl.cs
+++ b/v2rayN/v2rayN/Forms/ServerTransportControl.cs
@@ -22,6 +22,8 @@ namespace v2rayN.Forms
{
vmessItem = item;
+ cmbNetwork.Items.AddRange(Global.networks.ToArray());
+
cmbStreamSecurity.Items.Clear();
cmbStreamSecurity.Items.Add(string.Empty);
cmbStreamSecurity.Items.Add(Global.StreamSecurity);
@@ -126,11 +128,7 @@ namespace v2rayN.Forms
else if (network.Equals("kcp") || network.Equals("quic"))
{
cmbHeaderType.Items.Add(Global.None);
- cmbHeaderType.Items.Add("srtp");
- cmbHeaderType.Items.Add("utp");
- cmbHeaderType.Items.Add("wechat-video");
- cmbHeaderType.Items.Add("dtls");
- cmbHeaderType.Items.Add("wireguard");
+ cmbHeaderType.Items.AddRange(Global.kcpHeaderTypes.ToArray());
}
else if (network.Equals("grpc"))
{
diff --git a/v2rayN/v2rayN/Forms/ServerTransportControl.resx b/v2rayN/v2rayN/Forms/ServerTransportControl.resx
index f7f94e4a..61cd439f 100644
--- a/v2rayN/v2rayN/Forms/ServerTransportControl.resx
+++ b/v2rayN/v2rayN/Forms/ServerTransportControl.resx
@@ -366,24 +366,6 @@
2
-
- tcp
-
-
- kcp
-
-
- ws
-
-
- h2
-
-
- quic
-
-
- grpc
-
192, 28
@@ -690,27 +672,6 @@
13
-
- none
-
-
- http
-
-
- srtp
-
-
- utp
-
-
- wechat-video
-
-
- dtls
-
-
- wireguard
-
127, 60
diff --git a/v2rayN/v2rayN/Global.cs b/v2rayN/v2rayN/Global.cs
index 94a9d369..76c64d66 100644
--- a/v2rayN/v2rayN/Global.cs
+++ b/v2rayN/v2rayN/Global.cs
@@ -199,10 +199,12 @@ namespace v2rayN
public static readonly List vmessSecuritys = new List { "aes-128-gcm", "chacha20-poly1305", "auto", "none", "zero" };
public static readonly List ssSecuritys = new List { "aes-256-gcm", "aes-128-gcm", "chacha20-poly1305", "chacha20-ietf-poly1305", "none", "plain" };
public static readonly List xtlsFlows = new List { "", "xtls-rprx-origin", "xtls-rprx-origin-udp443", "xtls-rprx-direct", "xtls-rprx-direct-udp443" };
+ public static readonly List networks = new List { "tcp", "kcp", "ws", "h2", "quic", "grpc" };
+ public static readonly List kcpHeaderTypes = new List { "srtp", "utp", "wechat-video", "dtls", "wireguard" };
public const string GrpcgunMode = "gun";
public const string GrpcmultiMode = "multi";
-
+
#endregion
#region ć
šć±ćé
diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs
index 4af189b7..440aec2e 100644
--- a/v2rayN/v2rayN/Handler/ConfigHandler.cs
+++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs
@@ -996,6 +996,10 @@ namespace v2rayN.Handler
{
vmessItem.allowInsecure = config.defAllowInsecure.ToString();
}
+ if (!Utils.IsNullOrEmpty(vmessItem.network) && !Global.networks.Contains(vmessItem.network))
+ {
+ vmessItem.network = Global.DefaultNetwork;
+ }
config.vmess.Add(vmessItem);
if (config.vmess.Count == 1)
diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs
index 301ec1e7..754e59dc 100644
--- a/v2rayN/v2rayN/Mode/Config.cs
+++ b/v2rayN/v2rayN/Mode/Config.cs
@@ -246,7 +246,7 @@ namespace v2rayN.Mode
}
public string network()
{
- if (index < 0 || Utils.IsNullOrEmpty(vmess[index].network))
+ if (index < 0 || Utils.IsNullOrEmpty(vmess[index].network) || !Global.networks.Contains(vmess[index].network))
{
return Global.DefaultNetwork;
}