fix: IDNA domain match

This commit is contained in:
Skyxim
2022-06-18 18:13:54 +08:00
parent bf55428954
commit c1a99b9be4
4 changed files with 33 additions and 19 deletions

View File

@ -4,6 +4,7 @@ import (
"github.com/Dreamacro/clash/component/trie"
C "github.com/Dreamacro/clash/constant"
"github.com/Dreamacro/clash/log"
"golang.org/x/net/idna"
)
type domainStrategy struct {
@ -27,7 +28,8 @@ func (d *domainStrategy) OnUpdate(rules []string) {
domainTrie := trie.New[bool]()
count := 0
for _, rule := range rules {
err := domainTrie.Insert(rule, true)
actualDomain, _ := idna.ToASCII(rule)
err := domainTrie.Insert(actualDomain, true)
if err != nil {
log.Warnln("invalid domain:[%s]", rule)
} else {