dns.go 672 B

1234567891011121314151617181920212223242526272829303132
  1. package conf
  2. import (
  3. "v2ray.com/core/app/dns"
  4. v2net "v2ray.com/core/common/net"
  5. )
  6. type DnsConfig struct {
  7. Servers []*Address `json:"servers"`
  8. Hosts map[string]*Address `json:"hosts"`
  9. }
  10. func (v *DnsConfig) Build() *dns.Config {
  11. config := new(dns.Config)
  12. config.NameServers = make([]*v2net.Endpoint, len(v.Servers))
  13. for idx, server := range v.Servers {
  14. config.NameServers[idx] = &v2net.Endpoint{
  15. Network: v2net.Network_UDP,
  16. Address: server.Build(),
  17. Port: 53,
  18. }
  19. }
  20. if v.Hosts != nil {
  21. config.Hosts = make(map[string]*v2net.IPOrDomain)
  22. for domain, ip := range v.Hosts {
  23. config.Hosts[domain] = ip.Build()
  24. }
  25. }
  26. return config
  27. }