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 Warner // Metrics is the metrics interface to record metric data. // It defaults to a No-Op metrics implementation. Metrics Metrics // Picker is the picker to use for each upstream call to pick // a server from a pool of servers. It must be thread safe. // It defaults to a fast thread safe pseudo random picker // with uniform distribution. Picker Picker }
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 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) ToLinesNode ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServer ¶
func NewServer(settings ServerSettings) (server *Server, err error)
type ServerSettings ¶
type ServerSettings struct { Resolver ResolverSettings ListeningAddress string // Middlewares is a list of middlewares to use. // The first one is the first wrapper, and the last one // is the last wrapper of the handlers in the chain. Middlewares []Middleware // Logger is the logger to log information. // It defaults to a No-Op logger implementation. Logger Logger }
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)
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
metrics
|
|
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. |
Click to show internal directories.
Click to hide internal directories.