github.com/kelleygo/clashcore@v1.0.2/component/resolver/system.go (about) 1 package resolver 2 3 import "sync" 4 5 var blacklist struct { 6 Map map[string]struct{} 7 Mutex sync.Mutex 8 } 9 10 func init() { 11 blacklist.Map = make(map[string]struct{}) 12 } 13 14 func AddSystemDnsBlacklist(names ...string) { 15 blacklist.Mutex.Lock() 16 defer blacklist.Mutex.Unlock() 17 for _, name := range names { 18 blacklist.Map[name] = struct{}{} 19 } 20 } 21 22 func RemoveSystemDnsBlacklist(names ...string) { 23 blacklist.Mutex.Lock() 24 defer blacklist.Mutex.Unlock() 25 for _, name := range names { 26 delete(blacklist.Map, name) 27 } 28 } 29 30 func IsSystemDnsBlacklisted(names ...string) bool { 31 blacklist.Mutex.Lock() 32 defer blacklist.Mutex.Unlock() 33 for _, name := range names { 34 if _, ok := blacklist.Map[name]; ok { 35 return true 36 } 37 } 38 return false 39 }