Documentation
¶
Index ¶
- Variables
- func FixedResponse(id uint16, question dns.Question, addresses []netip.Addr, timeToLive uint32) *dns.Msg
- func FormatQuestion(string string) string
- func FqdnToDomain(fqdn string) string
- func MessageToAddresses(response *dns.Msg) ([]netip.Addr, error)
- func NewLocalDialer(ctx context.Context, options option.LocalDNSServerOptions) (N.Dialer, error)
- func NewRemoteDialer(ctx context.Context, options option.RemoteDNSServerOptions) (N.Dialer, error)
- func RegisterTransport[Options any](registry *TransportRegistry, transportType string, ...)
- func SetClientSubnet(message *dns.Msg, clientSubnet netip.Prefix, override bool) *dns.Msg
- func TruncateDNSMessage(request *dns.Msg, response *dns.Msg, headroom int) (*buf.Buffer, error)
- type Client
- func (c *Client) ClearCache()
- func (c *Client) Exchange(ctx context.Context, transport adapter.DNSTransport, message *dns.Msg, ...) (*dns.Msg, error)
- func (c *Client) ExchangeCache(ctx context.Context, message *dns.Msg) (*dns.Msg, bool)
- func (c *Client) Lookup(ctx context.Context, transport adapter.DNSTransport, domain string, ...) ([]netip.Addr, error)
- func (c *Client) LookupCache(domain string, strategy C.DomainStrategy) ([]netip.Addr, bool)
- func (c *Client) Start()
- type ClientOptions
- type RCodeError
- type Router
- func (r *Router) ClearCache()
- func (r *Router) Close() error
- func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg, options adapter.DNSQueryOptions) (*mDNS.Msg, error)
- func (r *Router) Initialize(rules []option.DNSRule) error
- func (r *Router) Lookup(ctx context.Context, domain string, options adapter.DNSQueryOptions) ([]netip.Addr, error)
- func (r *Router) LookupReverseMapping(ip netip.Addr) (string, bool)
- func (r *Router) ResetNetwork()
- func (r *Router) Start(stage adapter.StartStage) error
- type TransportAdapter
- func NewTransportAdapter(transportType string, transportTag string, dependencies []string) TransportAdapter
- func NewTransportAdapterWithLocalOptions(transportType string, transportTag string, ...) TransportAdapter
- func NewTransportAdapterWithRemoteOptions(transportType string, transportTag string, ...) TransportAdapter
- type TransportConstructorFunc
- type TransportManager
- func (m *TransportManager) Close() error
- func (m *TransportManager) Create(ctx context.Context, logger log.ContextLogger, tag string, ...) error
- func (m *TransportManager) Default() adapter.DNSTransport
- func (m *TransportManager) FakeIP() adapter.FakeIPTransport
- func (m *TransportManager) Initialize(defaultTransportFallback adapter.DNSTransport)
- func (m *TransportManager) Remove(tag string) error
- func (m *TransportManager) Start(stage adapter.StartStage) error
- func (m *TransportManager) Transport(tag string) (adapter.DNSTransport, bool)
- func (m *TransportManager) Transports() []adapter.DNSTransport
- type TransportRegistry
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNoRawSupport = E.New("no raw query support by current transport") ErrNotCached = E.New("not cached") ErrResponseRejected = E.New("response rejected") ErrResponseRejectedCached = E.Extend(ErrResponseRejected, "cached") )
Functions ¶
func FixedResponse ¶
func FormatQuestion ¶
func FqdnToDomain ¶
func NewLocalDialer ¶
func NewRemoteDialer ¶
func RegisterTransport ¶
func RegisterTransport[Options any](registry *TransportRegistry, transportType string, constructor TransportConstructorFunc[Options])
func SetClientSubnet ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(options ClientOptions) *Client
func (*Client) ClearCache ¶
func (c *Client) ClearCache()
func (*Client) ExchangeCache ¶
func (*Client) LookupCache ¶
type ClientOptions ¶
type RCodeError ¶
type RCodeError uint16
const ( RCodeSuccess RCodeError = 0 // NoError RCodeFormatError RCodeError = 1 // FormErr RCodeServerFailure RCodeError = 2 // ServFail RCodeNameError RCodeError = 3 // NXDomain RCodeNotImplemented RCodeError = 4 // NotImp RCodeRefused RCodeError = 5 // Refused )
func (RCodeError) Error ¶
func (e RCodeError) Error() string
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
func (*Router) ClearCache ¶
func (r *Router) ClearCache()
func (*Router) LookupReverseMapping ¶
func (*Router) ResetNetwork ¶
func (r *Router) ResetNetwork()
type TransportAdapter ¶
type TransportAdapter struct {
// contains filtered or unexported fields
}
func NewTransportAdapter ¶
func NewTransportAdapter(transportType string, transportTag string, dependencies []string) TransportAdapter
func NewTransportAdapterWithLocalOptions ¶
func NewTransportAdapterWithLocalOptions(transportType string, transportTag string, localOptions option.LocalDNSServerOptions) TransportAdapter
func NewTransportAdapterWithRemoteOptions ¶
func NewTransportAdapterWithRemoteOptions(transportType string, transportTag string, remoteOptions option.RemoteDNSServerOptions) TransportAdapter
func (*TransportAdapter) Dependencies ¶
func (a *TransportAdapter) Dependencies() []string
func (*TransportAdapter) LegacyClientSubnet ¶
func (a *TransportAdapter) LegacyClientSubnet() netip.Prefix
func (*TransportAdapter) LegacyStrategy ¶
func (a *TransportAdapter) LegacyStrategy() C.DomainStrategy
func (*TransportAdapter) Tag ¶
func (a *TransportAdapter) Tag() string
func (*TransportAdapter) Type ¶
func (a *TransportAdapter) Type() string
type TransportConstructorFunc ¶
type TransportConstructorFunc[T any] func(ctx context.Context, logger log.ContextLogger, tag string, options T) (adapter.DNSTransport, error)
type TransportManager ¶
type TransportManager struct {
// contains filtered or unexported fields
}
func NewTransportManager ¶
func NewTransportManager(logger logger.ContextLogger, registry adapter.DNSTransportRegistry, outbound adapter.OutboundManager, defaultTag string) *TransportManager
func (*TransportManager) Close ¶
func (m *TransportManager) Close() error
func (*TransportManager) Create ¶
func (m *TransportManager) Create(ctx context.Context, logger log.ContextLogger, tag string, transportType string, options any) error
func (*TransportManager) Default ¶
func (m *TransportManager) Default() adapter.DNSTransport
func (*TransportManager) FakeIP ¶
func (m *TransportManager) FakeIP() adapter.FakeIPTransport
func (*TransportManager) Initialize ¶
func (m *TransportManager) Initialize(defaultTransportFallback adapter.DNSTransport)
func (*TransportManager) Remove ¶
func (m *TransportManager) Remove(tag string) error
func (*TransportManager) Start ¶
func (m *TransportManager) Start(stage adapter.StartStage) error
func (*TransportManager) Transport ¶
func (m *TransportManager) Transport(tag string) (adapter.DNSTransport, bool)
func (*TransportManager) Transports ¶
func (m *TransportManager) Transports() []adapter.DNSTransport
type TransportRegistry ¶
type TransportRegistry struct {
// contains filtered or unexported fields
}
func NewTransportRegistry ¶
func NewTransportRegistry() *TransportRegistry
func (*TransportRegistry) CreateDNSTransport ¶
func (r *TransportRegistry) CreateDNSTransport(ctx context.Context, logger log.ContextLogger, tag string, transportType string, options any) (adapter.DNSTransport, error)
func (*TransportRegistry) CreateOptions ¶
func (r *TransportRegistry) CreateOptions(transportType string) (any, bool)
Source Files
¶
Click to show internal directories.
Click to hide internal directories.