dns.go 628 B

12345678910111213141516171819202122
  1. package adapter
  2. import (
  3. "context"
  4. "net/netip"
  5. C "github.com/sagernet/sing-box/constant"
  6. "golang.org/x/net/dns/dnsmessage"
  7. )
  8. type DNSClient interface {
  9. Exchange(ctx context.Context, transport DNSTransport, message *dnsmessage.Message) (*dnsmessage.Message, error)
  10. Lookup(ctx context.Context, transport DNSTransport, domain string, strategy C.DomainStrategy) ([]netip.Addr, error)
  11. }
  12. type DNSTransport interface {
  13. Service
  14. Raw() bool
  15. Exchange(ctx context.Context, message *dnsmessage.Message) (*dnsmessage.Message, error)
  16. Lookup(ctx context.Context, domain string, strategy C.DomainStrategy) ([]netip.Addr, error)
  17. }