dns_proxy.go 722 B

123456789101112131415161718192021222324252627282930
  1. package v4
  2. import (
  3. "github.com/golang/protobuf/proto"
  4. "github.com/v2fly/v2ray-core/v5/common/net"
  5. "github.com/v2fly/v2ray-core/v5/infra/conf/cfgcommon"
  6. "github.com/v2fly/v2ray-core/v5/proxy/dns"
  7. )
  8. type DNSOutboundConfig struct {
  9. Network cfgcommon.Network `json:"network"`
  10. Address *cfgcommon.Address `json:"address"`
  11. Port uint16 `json:"port"`
  12. UserLevel uint32 `json:"userLevel"`
  13. }
  14. func (c *DNSOutboundConfig) Build() (proto.Message, error) {
  15. config := &dns.Config{
  16. Server: &net.Endpoint{
  17. Network: c.Network.Build(),
  18. Port: uint32(c.Port),
  19. },
  20. UserLevel: c.UserLevel,
  21. }
  22. if c.Address != nil {
  23. config.Server.Address = c.Address.Build()
  24. }
  25. return config, nil
  26. }