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 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
}
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)
Source Files ¶
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. |
Click to show internal directories.
Click to hide internal directories.