Compare commits

...

2 commits

Author SHA1 Message Date
DHR60
e32dfc36b7
Merge 8d441c96a8 into 9c58fec8d4 2025-10-06 13:31:39 +00:00
DHR60
8d441c96a8 Fix 2025-10-06 21:31:20 +08:00
8 changed files with 33 additions and 5 deletions

View file

@ -2094,6 +2094,15 @@ namespace ServiceLib.Resx {
} }
} }
/// <summary>
/// 查找类似 Not support protocol &apos;{0}&apos;. 的本地化字符串。
/// </summary>
public static string NotSupportProtocol {
get {
return ResourceManager.GetString("NotSupportProtocol", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 Scan completed, no valid QR code found 的本地化字符串。 /// 查找类似 Scan completed, no valid QR code found 的本地化字符串。
/// </summary> /// </summary>

View file

@ -1590,4 +1590,7 @@
<data name="GroupSelfReference" xml:space="preserve"> <data name="GroupSelfReference" xml:space="preserve">
<value>The group "{0}" cannot reference itself.</value> <value>The group "{0}" cannot reference itself.</value>
</data> </data>
<data name="NotSupportProtocol" xml:space="preserve">
<value>Not support protocol '{0}'.</value>
</data>
</root> </root>

View file

@ -1590,4 +1590,7 @@
<data name="GroupSelfReference" xml:space="preserve"> <data name="GroupSelfReference" xml:space="preserve">
<value>The group "{0}" cannot reference itself.</value> <value>The group "{0}" cannot reference itself.</value>
</data> </data>
<data name="NotSupportProtocol" xml:space="preserve">
<value>Not support protocol '{0}'.</value>
</data>
</root> </root>

View file

@ -1590,4 +1590,7 @@
<data name="GroupSelfReference" xml:space="preserve"> <data name="GroupSelfReference" xml:space="preserve">
<value>The group "{0}" cannot reference itself.</value> <value>The group "{0}" cannot reference itself.</value>
</data> </data>
<data name="NotSupportProtocol" xml:space="preserve">
<value>Not support protocol '{0}'.</value>
</data>
</root> </root>

View file

@ -1590,4 +1590,7 @@
<data name="GroupSelfReference" xml:space="preserve"> <data name="GroupSelfReference" xml:space="preserve">
<value>The group "{0}" cannot reference itself.</value> <value>The group "{0}" cannot reference itself.</value>
</data> </data>
<data name="NotSupportProtocol" xml:space="preserve">
<value>Not support protocol '{0}'.</value>
</data>
</root> </root>

View file

@ -1587,4 +1587,7 @@
<data name="GroupSelfReference" xml:space="preserve"> <data name="GroupSelfReference" xml:space="preserve">
<value>{0} 分组不能引用自身</value> <value>{0} 分组不能引用自身</value>
</data> </data>
<data name="NotSupportProtocol" xml:space="preserve">
<value>不支持协议 '{0}'。</value>
</data>
</root> </root>

View file

@ -1587,4 +1587,7 @@
<data name="GroupSelfReference" xml:space="preserve"> <data name="GroupSelfReference" xml:space="preserve">
<value>The group "{0}" cannot reference itself.</value> <value>The group "{0}" cannot reference itself.</value>
</data> </data>
<data name="NotSupportProtocol" xml:space="preserve">
<value>Not support protocol '{0}'.</value>
</data>
</root> </root>

View file

@ -57,13 +57,11 @@ public class ActionPrecheckService(Config config)
{ {
var errors = new List<string>(); var errors = new List<string>();
// sing-box does not support xhttp / kcp
// sing-box does not support transports like ws/http/httpupgrade/etc. when the node is not vmess/trojan/vless
coreType ??= AppManager.Instance.GetCoreType(item, item.ConfigType); coreType ??= AppManager.Instance.GetCoreType(item, item.ConfigType);
if (item.ConfigType is EConfigType.Custom) if (item.ConfigType is EConfigType.Custom)
{ {
errors.Add(string.Format(ResUI.CoreNotSupportProtocol, coreType.ToString(), item.ConfigType.ToString())); errors.Add(string.Format(ResUI.NotSupportProtocol, item.ConfigType.ToString()));
return errors; return errors;
} }
@ -164,6 +162,8 @@ public class ActionPrecheckService(Config config)
if (coreType == ECoreType.sing_box) if (coreType == ECoreType.sing_box)
{ {
// sing-box does not support xhttp / kcp
// sing-box does not support transports like ws/http/httpupgrade/etc. when the node is not vmess/trojan/vless
if (net is nameof(ETransport.kcp) or nameof(ETransport.xhttp)) if (net is nameof(ETransport.kcp) or nameof(ETransport.xhttp))
{ {
errors.Add(string.Format(ResUI.CoreNotSupportNetwork, nameof(ECoreType.sing_box), net)); errors.Add(string.Format(ResUI.CoreNotSupportNetwork, nameof(ECoreType.sing_box), net));
@ -182,14 +182,15 @@ public class ActionPrecheckService(Config config)
else if (coreType is ECoreType.Xray) else if (coreType is ECoreType.Xray)
{ {
// Xray core does not support these protocols // Xray core does not support these protocols
if (item.ConfigType is EConfigType.Hysteria2 or EConfigType.TUIC or EConfigType.Anytls) if (!Global.XraySupportConfigType.Contains(item.ConfigType)
&& !item.IsComplex())
{ {
errors.Add(string.Format(ResUI.CoreNotSupportProtocol, nameof(ECoreType.Xray), item.ConfigType.ToString())); errors.Add(string.Format(ResUI.CoreNotSupportProtocol, nameof(ECoreType.Xray), item.ConfigType.ToString()));
return errors; return errors;
} }
} }
return errors.Select(s => $"{item.Remarks}: {s}").ToList(); return errors;
} }
private async Task<List<string>> ValidateRelatedNodesExistAndValid(ProfileItem? item) private async Task<List<string>> ValidateRelatedNodesExistAndValid(ProfileItem? item)