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; }