Determine .exe suffix based on OS in GenRoutingDirectExe (#7322)

* Determine .exe suffix based on OS in GenRoutingDirectExe

* Uses Utils.GetExeName
This commit is contained in:
DHR60 2025-05-21 19:57:23 +08:00 committed by GitHub
parent 5d2aea6b4f
commit b9613875ce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1048,28 +1048,30 @@ public class CoreConfigSingboxService
private void GenRoutingDirectExe(out List<string> lstDnsExe, out List<string> lstDirectExe)
{
lstDnsExe = new();
lstDirectExe = new();
var coreInfo = CoreInfoHandler.Instance.GetCoreInfo();
foreach (var it in coreInfo)
var dnsExeSet = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
var directExeSet = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
var coreInfoResult = CoreInfoHandler.Instance.GetCoreInfo();
foreach (var coreConfig in coreInfoResult)
{
if (it.CoreType == ECoreType.v2rayN)
if (coreConfig.CoreType == ECoreType.v2rayN)
{
continue;
}
foreach (var it2 in it.CoreExes)
{
if (!lstDnsExe.Contains(it2) && it.CoreType != ECoreType.sing_box)
{
lstDnsExe.Add($"{it2}.exe");
}
if (!lstDirectExe.Contains(it2))
foreach (var baseExeName in coreConfig.CoreExes)
{
if (coreConfig.CoreType != ECoreType.sing_box)
{
lstDirectExe.Add($"{it2}.exe");
dnsExeSet.Add(Utils.GetExeName(baseExeName));
}
directExeSet.Add(Utils.GetExeName(baseExeName));
}
}
lstDnsExe = new List<string>(dnsExeSet);
lstDirectExe = new List<string>(directExeSet);
}
private async Task<int> GenRoutingUserRule(RulesItem item, List<Rule4Sbox> rules)