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

@ -1,6 +1,7 @@
package common
import (
"golang.org/x/net/idna"
"strings"
C "github.com/Dreamacro/clash/constant"
@ -8,8 +9,9 @@ import (
type Domain struct {
*Base
domain string
adapter string
domain string
rawDomain string
adapter string
}
func (d *Domain) RuleType() C.RuleType {
@ -28,14 +30,16 @@ func (d *Domain) Adapter() string {
}
func (d *Domain) Payload() string {
return d.domain
return d.rawDomain
}
func NewDomain(domain string, adapter string) *Domain {
actualDomain, _ := idna.ToASCII(domain)
return &Domain{
Base: &Base{},
domain: strings.ToLower(domain),
adapter: adapter,
Base: &Base{},
domain: strings.ToLower(actualDomain),
adapter: adapter,
rawDomain: domain,
}
}