mirror of
https://github.com/2dust/v2rayN.git
synced 2025-05-01 20:58:50 +00:00
sing-box prioritizes the use of local srs
This commit is contained in:
parent
4caf1a1e63
commit
449bb40d48
1 changed files with 27 additions and 12 deletions
|
@ -1,4 +1,5 @@
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.NetworkInformation;
|
using System.Net.NetworkInformation;
|
||||||
using v2rayN.Enums;
|
using v2rayN.Enums;
|
||||||
|
@ -966,27 +967,41 @@ namespace v2rayN.Handler.CoreConfig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Local srs files address
|
||||||
|
var localSrss = Utils.GetBinPath("srss");
|
||||||
|
|
||||||
//Add ruleset srs
|
//Add ruleset srs
|
||||||
singboxConfig.route.rule_set = [];
|
singboxConfig.route.rule_set = [];
|
||||||
foreach (var item in new HashSet<string>(ruleSets))
|
foreach (var item in new HashSet<string>(ruleSets))
|
||||||
{
|
{
|
||||||
if (Utils.IsNullOrEmpty(item)) { continue; }
|
if (Utils.IsNullOrEmpty(item)) { continue; }
|
||||||
var customRuleset = customRulesets.FirstOrDefault(t => t.tag != null && t.tag.Equals(item));
|
var customRuleset = customRulesets.FirstOrDefault(t => t.tag != null && t.tag.Equals(item));
|
||||||
if (customRuleset != null)
|
if (customRuleset is null)
|
||||||
{
|
{
|
||||||
singboxConfig.route.rule_set.Add(customRuleset);
|
var pathSrs = Path.Combine(localSrss, $"{item}.srs");
|
||||||
}
|
if (File.Exists(pathSrs))
|
||||||
else
|
|
||||||
{
|
|
||||||
singboxConfig.route.rule_set.Add(new()
|
|
||||||
{
|
{
|
||||||
type = "remote",
|
customRuleset = new()
|
||||||
format = "binary",
|
{
|
||||||
tag = item,
|
type = "local",
|
||||||
url = string.Format(Global.SingboxRulesetUrl, item.StartsWith(geosite) ? geosite : geoip, item),
|
format = "binary",
|
||||||
download_detour = Global.ProxyTag
|
tag = item,
|
||||||
});
|
path = pathSrs
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
customRuleset = new()
|
||||||
|
{
|
||||||
|
type = "remote",
|
||||||
|
format = "binary",
|
||||||
|
tag = item,
|
||||||
|
url = string.Format(Global.SingboxRulesetUrl, item.StartsWith(geosite) ? geosite : geoip, item),
|
||||||
|
download_detour = Global.ProxyTag
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
singboxConfig.route.rule_set.Add(customRuleset);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue