fix: let input prefix to lower case when parsing. Fix #868

This commit is contained in:
Larvan2 2023-12-05 20:29:56 +08:00
parent 2d73bcb951
commit ee6b974c18
2 changed files with 11 additions and 7 deletions

View file

@ -1114,7 +1114,7 @@ func parseNameServerPolicy(nsPolicy *orderedmap.OrderedMap[string, any], rulePro
for pair := nsPolicy.Oldest(); pair != nil; pair = pair.Next() {
k, v := pair.Key, pair.Value
if strings.Contains(k, ",") {
if strings.Contains(strings.ToLower(k), ",") {
if strings.Contains(k, "geosite:") {
subkeys := strings.Split(k, ":")
subkeys = subkeys[1:]
@ -1123,7 +1123,7 @@ func parseNameServerPolicy(nsPolicy *orderedmap.OrderedMap[string, any], rulePro
newKey := "geosite:" + subkey
updatedPolicy.Store(newKey, v)
}
} else if strings.Contains(k, "rule-set:") {
} else if strings.Contains(strings.ToLower(k), "rule-set:") {
subkeys := strings.Split(k, ":")
subkeys = subkeys[1:]
subkeys = strings.Split(subkeys[0], ",")
@ -1138,6 +1138,11 @@ func parseNameServerPolicy(nsPolicy *orderedmap.OrderedMap[string, any], rulePro
}
}
} else {
if strings.Contains(strings.ToLower(k), "geosite:") {
updatedPolicy.Store("geosite:"+k[8:], v)
} else if strings.Contains(strings.ToLower(k), "rule-set:") {
updatedPolicy.Store("rule-set:"+k[9:], v)
}
updatedPolicy.Store(k, v)
}
}

View file

@ -493,22 +493,21 @@ func NewResolver(config Config) *Resolver {
for pair := config.Policy.Oldest(); pair != nil; pair = pair.Next() {
domain, nameserver := pair.Key, pair.Value
domain = strings.ToLower(domain)
if temp := strings.Split(domain, ":"); len(temp) == 2 {
prefix := temp[0]
key := temp[1]
switch strings.ToLower(prefix) {
switch prefix {
case "rule-set":
if p, ok := config.RuleProviders[key]; ok {
insertTriePolicy()
log.Debugln("Adding rule-set policy: %s ", key)
r.policy = append(r.policy, domainSetPolicy{
domainSetProvider: p,
dnsClients: cacheTransform(nameserver),
})
continue
} else {
log.Warnln("can't found ruleset policy: %s", key)
log.Warnln("Can't found ruleset policy: %s", key)
}
case "geosite":
inverse := false
@ -516,7 +515,7 @@ func NewResolver(config Config) *Resolver {
inverse = true
key = key[1:]
}
log.Debugln("adding geosite policy: %s inversed %t", key, inverse)
log.Debugln("Adding geosite policy: %s inversed %t", key, inverse)
matcher, err := NewGeoSite(key)
if err != nil {
log.Warnln("adding geosite policy %s error: %s", key, err)