doh

package
v2.0.0-rc0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2022 License: MIT Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrHTTPStatus = errors.New("bad HTTP status")
)
View Source
var (
	ErrListeningAddressNotValid = errors.New("listening address is not valid")
)

Functions

func NewResolver

func NewResolver(settings ResolverSettings) (
	resolver *net.Resolver, err error)

NewResolver creates a DNS over HTTPs resolver.

Types

type ResolverSettings

type ResolverSettings struct {
	DoHProviders []string
	SelfDNS      SelfDNS
	Timeout      time.Duration
	// Warner is the warning logger to log dial errors.
	// It defaults to a No-Op warner implementation.
	Warner log.Warner
	// Metrics is the metrics interface to record metric data.
	// It defaults to a No-Op metrics implementation.
	Metrics metrics.DialMetrics
}

func (*ResolverSettings) SetDefaults

func (s *ResolverSettings) SetDefaults()

func (*ResolverSettings) String

func (s *ResolverSettings) String() string

func (*ResolverSettings) ToLinesNode

func (s *ResolverSettings) ToLinesNode() (node *gotree.Node)

func (ResolverSettings) Validate

func (s ResolverSettings) Validate() (err error)

type Runner

type Runner interface {
	Run(ctx context.Context, stopped chan<- error)
}

type SelfDNS

type SelfDNS struct {
	// for the internal HTTP client to resolve the DoH url hostname.
	DoTProviders []string
	DNSProviders []string
	Timeout      time.Duration
	IPv6         *bool
}

func (*SelfDNS) SetDefaults

func (s *SelfDNS) SetDefaults()

func (*SelfDNS) String

func (s *SelfDNS) String() string

func (*SelfDNS) ToLinesNode

func (s *SelfDNS) ToLinesNode() (node *gotree.Node)

func (SelfDNS) Validate

func (s SelfDNS) Validate() (err error)

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(ctx context.Context, settings ServerSettings) (
	server *Server, err error)

func (*Server) Run

func (s *Server) Run(ctx context.Context, stopped chan<- error)

type ServerSettings

type ServerSettings struct {
	Resolver      ResolverSettings
	Address       string
	LogMiddleware logmiddleware.Settings
	// Cache is the cache to use in the server.
	// It defaults to a No-Op cache implementation with
	// a No-Op cache metrics implementation.
	Cache cache.Interface
	// Filter is the filter for DNS requests and responses.
	// It defaults to a No-Op filter implementation.
	Filter filter.Interface
	// Logger is the logger to log information.
	// It defaults to a No-Op logger implementation.
	Logger log.Logger
	// Metrics is the metrics interface to record metric data.
	// It defaults to a No-Op metrics implementation.
	Metrics metrics.Interface
}

func (*ServerSettings) SetDefaults

func (s *ServerSettings) SetDefaults()

func (*ServerSettings) String

func (s *ServerSettings) String() string

func (*ServerSettings) ToLinesNode

func (s *ServerSettings) ToLinesNode() (node *gotree.Node)

func (ServerSettings) Validate

func (s ServerSettings) Validate() (err error)

Directories

Path Synopsis
Package metrics defines metric interfaces for the DoH server and resolver.
Package metrics defines metric interfaces for the DoH server and resolver.
noop
Package noop defines a No-op metric implementation for DoH.
Package noop defines a No-op metric implementation for DoH.
prometheus
Package prometheus defines a Prometheus metric implementation for DoH.
Package prometheus defines a Prometheus metric implementation for DoH.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL