Feature: add fake-ip-filter

This commit is contained in:
Dreamacro
2019-12-28 00:10:06 +08:00
parent 37603735bd
commit 96f490f84a
4 changed files with 31 additions and 2 deletions

View File

@ -81,6 +81,7 @@ type rawDNS struct {
Listen string `yaml:"listen"`
EnhancedMode dns.EnhancedMode `yaml:"enhanced-mode"`
FakeIPRange string `yaml:"fake-ip-range"`
FakeIPFilter []string `yaml:"fake-ip-filter"`
}
type rawFallbackFilter struct {
@ -523,7 +524,17 @@ func parseDNS(cfg rawDNS) (*DNS, error) {
if err != nil {
return nil, err
}
pool, err := fakeip.New(ipnet, 1000)
var host *trie.Trie
// fake ip skip host filter
if len(cfg.FakeIPFilter) != 0 {
host = trie.New()
for _, domain := range cfg.FakeIPFilter {
host.Insert(domain, true)
}
}
pool, err := fakeip.New(ipnet, 1000, host)
if err != nil {
return nil, err
}