transport_base.go 858 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package dns
  2. import (
  3. "context"
  4. "net/netip"
  5. "os"
  6. "sync"
  7. M "github.com/sagernet/sing/common/metadata"
  8. N "github.com/sagernet/sing/common/network"
  9. C "github.com/sagernet/sing-box/constant"
  10. "github.com/sagernet/sing-box/log"
  11. )
  12. type myTransportAdapter struct {
  13. ctx context.Context
  14. dialer N.Dialer
  15. logger log.Logger
  16. destination M.Socksaddr
  17. done chan struct{}
  18. access sync.RWMutex
  19. connection *dnsConnection
  20. }
  21. func (t *myTransportAdapter) Start() error {
  22. return nil
  23. }
  24. func (t *myTransportAdapter) Close() error {
  25. select {
  26. case <-t.done:
  27. return os.ErrClosed
  28. default:
  29. }
  30. close(t.done)
  31. return nil
  32. }
  33. func (t *myTransportAdapter) Raw() bool {
  34. return true
  35. }
  36. func (t *myTransportAdapter) Lookup(ctx context.Context, domain string, strategy C.DomainStrategy) ([]netip.Addr, error) {
  37. return nil, os.ErrInvalid
  38. }