mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2024-11-16 03:32:33 +08:00
chore: remove some confusing restrictions on comma separation in NameServerPolicy configuration
Some checks are pending
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
Some checks are pending
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
This commit is contained in:
parent
f52fe6aa74
commit
d80e8bb0c2
|
@ -8,7 +8,6 @@ import (
|
||||||
"net/netip"
|
"net/netip"
|
||||||
"net/url"
|
"net/url"
|
||||||
"path"
|
"path"
|
||||||
"regexp"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -1287,7 +1286,6 @@ func parsePureDNSServer(server string) string {
|
||||||
|
|
||||||
func parseNameServerPolicy(nsPolicy *orderedmap.OrderedMap[string, any], ruleProviders map[string]providerTypes.RuleProvider, respectRules bool, preferH3 bool) ([]dns.Policy, error) {
|
func parseNameServerPolicy(nsPolicy *orderedmap.OrderedMap[string, any], ruleProviders map[string]providerTypes.RuleProvider, respectRules bool, preferH3 bool) ([]dns.Policy, error) {
|
||||||
var policy []dns.Policy
|
var policy []dns.Policy
|
||||||
re := regexp.MustCompile(`[a-zA-Z0-9\-]+\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?`)
|
|
||||||
|
|
||||||
for pair := nsPolicy.Oldest(); pair != nil; pair = pair.Next() {
|
for pair := nsPolicy.Oldest(); pair != nil; pair = pair.Next() {
|
||||||
k, v := pair.Key, pair.Value
|
k, v := pair.Key, pair.Value
|
||||||
|
@ -1299,8 +1297,9 @@ func parseNameServerPolicy(nsPolicy *orderedmap.OrderedMap[string, any], rulePro
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if strings.Contains(strings.ToLower(k), ",") {
|
kLower := strings.ToLower(k)
|
||||||
if strings.Contains(k, "geosite:") {
|
if strings.Contains(kLower, ",") {
|
||||||
|
if strings.Contains(kLower, "geosite:") {
|
||||||
subkeys := strings.Split(k, ":")
|
subkeys := strings.Split(k, ":")
|
||||||
subkeys = subkeys[1:]
|
subkeys = subkeys[1:]
|
||||||
subkeys = strings.Split(subkeys[0], ",")
|
subkeys = strings.Split(subkeys[0], ",")
|
||||||
|
@ -1308,7 +1307,7 @@ func parseNameServerPolicy(nsPolicy *orderedmap.OrderedMap[string, any], rulePro
|
||||||
newKey := "geosite:" + subkey
|
newKey := "geosite:" + subkey
|
||||||
policy = append(policy, dns.Policy{Domain: newKey, NameServers: nameservers})
|
policy = append(policy, dns.Policy{Domain: newKey, NameServers: nameservers})
|
||||||
}
|
}
|
||||||
} else if strings.Contains(strings.ToLower(k), "rule-set:") {
|
} else if strings.Contains(kLower, "rule-set:") {
|
||||||
subkeys := strings.Split(k, ":")
|
subkeys := strings.Split(k, ":")
|
||||||
subkeys = subkeys[1:]
|
subkeys = subkeys[1:]
|
||||||
subkeys = strings.Split(subkeys[0], ",")
|
subkeys = strings.Split(subkeys[0], ",")
|
||||||
|
@ -1316,16 +1315,16 @@ func parseNameServerPolicy(nsPolicy *orderedmap.OrderedMap[string, any], rulePro
|
||||||
newKey := "rule-set:" + subkey
|
newKey := "rule-set:" + subkey
|
||||||
policy = append(policy, dns.Policy{Domain: newKey, NameServers: nameservers})
|
policy = append(policy, dns.Policy{Domain: newKey, NameServers: nameservers})
|
||||||
}
|
}
|
||||||
} else if re.MatchString(k) {
|
} else {
|
||||||
subkeys := strings.Split(k, ",")
|
subkeys := strings.Split(k, ",")
|
||||||
for _, subkey := range subkeys {
|
for _, subkey := range subkeys {
|
||||||
policy = append(policy, dns.Policy{Domain: subkey, NameServers: nameservers})
|
policy = append(policy, dns.Policy{Domain: subkey, NameServers: nameservers})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if strings.Contains(strings.ToLower(k), "geosite:") {
|
if strings.Contains(kLower, "geosite:") {
|
||||||
policy = append(policy, dns.Policy{Domain: "geosite:" + k[8:], NameServers: nameservers})
|
policy = append(policy, dns.Policy{Domain: "geosite:" + k[8:], NameServers: nameservers})
|
||||||
} else if strings.Contains(strings.ToLower(k), "rule-set:") {
|
} else if strings.Contains(kLower, "rule-set:") {
|
||||||
policy = append(policy, dns.Policy{Domain: "rule-set:" + k[9:], NameServers: nameservers})
|
policy = append(policy, dns.Policy{Domain: "rule-set:" + k[9:], NameServers: nameservers})
|
||||||
} else {
|
} else {
|
||||||
policy = append(policy, dns.Policy{Domain: k, NameServers: nameservers})
|
policy = append(policy, dns.Policy{Domain: k, NameServers: nameservers})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user