doh

package
v0.0.0-...-c87e2c0 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2022 License: MIT Imports: 19 Imported by: 0

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 DNSRequest struct {
	Request         *dns.Msg
	Response        *dns.Msg
	TransactionID   uint16
	CurrentUpstream string
	IsTailored      bool
	ErrorCode       int
	ErrorText       string
}

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)

func NewStaticHandler

func NewStaticHandler(conf *Config, logger *logrus.Entry) (*Handler, error)

func (*Handler) ServeHTTP

func (s *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request)

Jump to

Keyboard shortcuts

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