system.go 724 B

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