feature: geosite-based nameserver policy

This commit is contained in:
i40e
2023-01-21 14:40:36 +08:00
committed by metacubex
parent 1924b308fd
commit 02684a868f
2 changed files with 52 additions and 6 deletions

View File

@ -91,6 +91,17 @@ type geoSiteFilter struct {
matchers []*router.DomainMatcher
}
func NewGeoSite(group string) (fallbackDomainFilter, error) {
matcher, _, err := geodata.LoadGeoSiteMatcher(group)
if err != nil {
return nil, err
}
filter := &geoSiteFilter{
matchers: []*router.DomainMatcher{matcher},
}
return filter, nil
}
func (gsf *geoSiteFilter) Match(domain string) bool {
for _, matcher := range gsf.matchers {
if matcher.ApplyDomain(domain) {