Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Upstream []string `json:"upstream" envconfig:"UPSTREAM_SERVERS" required:"true"`
Timeout uint `json:"timeout" envconfig:"UPSTREAM_CONNECTION_TIMEOUT" default:"10"`
Tries uint `json:"tries" envconfig:"UPSTREAM_RESOLUTION_RETRIES" default:"10"`
TCPOnly bool `json:"tcp_only" envconfig:"UPSTREAM_TCP_ONLY" default:"true"`
UseTLS bool `json:"use_tls" envconfig:"UPSTREAM_USE_TLS" default:"true"`
Verbose bool `json:"verbose" envconfig:"VERBOSE" default:"false"`
LogGuessedIP bool `json:"log_guessed_ip" envconfig:"LOG_GUESSED_IP" default:"false"`
UserAgent string `json:"user_agent" envconfig:"APPLICATION_USER_AGENT" default:"sls-doh/1.0.0"`
EnableBlocking bool `json:"enable_blocking" envconfig:"ENABLE_BLOCKING" default:"true"`
AppendListHeaders bool `json:"append_list_headers" envconfig:"RESPONSE_APPEND_LIST_HEADERS" default:"true"`
AppendQueriedQNameHeader bool `json:"append_queried_qname_header" envconfig:"RESPONSE_APPEND_QNAME_HEADER" default:"false"`
}
func GetConfigFromEnvironment ¶
func GetConfigFromEnvironment() *Config
type DNSRequest ¶
type Handler ¶
type Handler struct {
Config *Config
UDPClient *dns.Client
TCPClient *dns.Client
TLSClient *dns.Client
IPv4Target net.IP
IPv6Target net.IP
Logger *logrus.Entry
Provider listprovider.ListProvider
}
func NewHandler ¶
func NewHandler(conf *Config, provider listprovider.ListProvider, logger *logrus.Entry) (*Handler, error)
Click to show internal directories.
Click to hide internal directories.