mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-05-04 19:28:40 +00:00
Merge branch 'dns' into dns-geo
This commit is contained in:
commit
ee682b17d1
12 changed files with 910 additions and 48 deletions
|
@ -32,6 +32,24 @@ type DomainMatcher struct {
|
|||
matchers str.IndexMatcher
|
||||
}
|
||||
|
||||
func NewMphMatcherGroup(domains []*Domain) (*DomainMatcher, error) {
|
||||
g := str.NewMphMatcherGroup()
|
||||
for _, d := range domains {
|
||||
matcherType, f := matcherTypeMap[d.Type]
|
||||
if !f {
|
||||
return nil, newError("unsupported domain type", d.Type)
|
||||
}
|
||||
_, err := g.AddPattern(d.Value, matcherType)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
g.Build()
|
||||
return &DomainMatcher{
|
||||
matchers: g,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func NewDomainMatcher(domains []*Domain) (*DomainMatcher, error) {
|
||||
g := new(str.MatcherGroup)
|
||||
for _, d := range domains {
|
||||
|
@ -48,7 +66,7 @@ func NewDomainMatcher(domains []*Domain) (*DomainMatcher, error) {
|
|||
}
|
||||
|
||||
func (m *DomainMatcher) ApplyDomain(domain string) bool {
|
||||
return len(m.matchers.Match(domain)) > 0
|
||||
return len(m.matchers.Match(strings.ToLower(domain))) > 0
|
||||
}
|
||||
|
||||
// Apply implements Condition.
|
||||
|
@ -57,5 +75,5 @@ func (m *DomainMatcher) Apply(ctx routing.Context) bool {
|
|||
if len(domain) == 0 {
|
||||
return false
|
||||
}
|
||||
return m.ApplyDomain(strings.ToLower(domain))
|
||||
return m.ApplyDomain(domain)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue