mirror of
https://github.com/2dust/v2rayN.git
synced 2026-10-28 08:04:58 +03:00
Fix hosts matching (#8890)
* Fix hosts matching * Fix hosts resolve rule * Fix
This commit is contained in:
@@ -84,11 +84,58 @@ public partial class CoreConfigSingboxService
|
||||
}
|
||||
if (hostsDomains.Count > 0)
|
||||
{
|
||||
_coreConfig.route.rules.Add(new()
|
||||
var hostsResolveRule = new Rule4Sbox
|
||||
{
|
||||
action = "resolve",
|
||||
domain = hostsDomains,
|
||||
});
|
||||
};
|
||||
var hostsCounter = 0;
|
||||
foreach (var host in hostsDomains)
|
||||
{
|
||||
var domainRule = new Rule4Sbox();
|
||||
if (!ParseV2Domain(host, domainRule))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (domainRule.domain_keyword?.Count > 0 && !host.Contains(':'))
|
||||
{
|
||||
domainRule.domain = domainRule.domain_keyword;
|
||||
domainRule.domain_keyword = null;
|
||||
}
|
||||
if (domainRule.domain?.Count > 0)
|
||||
{
|
||||
hostsResolveRule.domain ??= [];
|
||||
hostsResolveRule.domain.AddRange(domainRule.domain);
|
||||
hostsCounter++;
|
||||
}
|
||||
else if (domainRule.domain_keyword?.Count > 0)
|
||||
{
|
||||
hostsResolveRule.domain_keyword ??= [];
|
||||
hostsResolveRule.domain_keyword.AddRange(domainRule.domain_keyword);
|
||||
hostsCounter++;
|
||||
}
|
||||
else if (domainRule.domain_suffix?.Count > 0)
|
||||
{
|
||||
hostsResolveRule.domain_suffix ??= [];
|
||||
hostsResolveRule.domain_suffix.AddRange(domainRule.domain_suffix);
|
||||
hostsCounter++;
|
||||
}
|
||||
else if (domainRule.domain_regex?.Count > 0)
|
||||
{
|
||||
hostsResolveRule.domain_regex ??= [];
|
||||
hostsResolveRule.domain_regex.AddRange(domainRule.domain_regex);
|
||||
hostsCounter++;
|
||||
}
|
||||
else if (domainRule.geosite?.Count > 0)
|
||||
{
|
||||
hostsResolveRule.geosite ??= [];
|
||||
hostsResolveRule.geosite.AddRange(domainRule.geosite);
|
||||
hostsCounter++;
|
||||
}
|
||||
}
|
||||
if (hostsCounter > 0)
|
||||
{
|
||||
_coreConfig.route.rules.Add(hostsResolveRule);
|
||||
}
|
||||
}
|
||||
|
||||
_coreConfig.route.rules.Add(new()
|
||||
@@ -355,6 +402,11 @@ public partial class CoreConfigSingboxService
|
||||
rule.domain_keyword ??= [];
|
||||
rule.domain_keyword?.Add(domain.Substring(8));
|
||||
}
|
||||
else if (domain.StartsWith("dotless:"))
|
||||
{
|
||||
rule.domain_keyword ??= [];
|
||||
rule.domain_keyword?.Add(domain.Substring(8));
|
||||
}
|
||||
else
|
||||
{
|
||||
rule.domain_keyword ??= [];
|
||||
|
||||
Reference in New Issue
Block a user