server

package
v0.24.0 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2021 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const PluginType = "server"

Variables

This section is empty.

Functions

func Init

func Init(bp *handler.BP, args interface{}) (p handler.Plugin, err error)

Types

type Args

type Args struct {
	Server               []*ServerConfig `yaml:"server"`
	Entry                string          `yaml:"entry"`
	MaxConcurrentQueries int             `yaml:"max_concurrent_queries"`
}

type ServerConfig

type ServerConfig struct {
	// Protocol: server protocol, can be:
	// "", "udp" -> udp
	// "tcp" -> tcp
	// "dot" -> dns over tls
	// "doh", "https" -> dns over https (rfc 8844)
	// "http" -> dns over https (rfc 8844) but with out tls
	Protocol string `yaml:"protocol"`

	// Addr: server "host:port" addr, "port" can be omitted.
	// Addr can not be empty.
	Addr string `yaml:"addr"`

	Cert    string `yaml:"cert"`     // certificate path, used by dot, doh
	Key     string `yaml:"key"`      // certificate key path, used by dot, doh
	URLPath string `yaml:"url_path"` // used by doh, url path. If it's emtpy, any path will be handled.

	Timeout     uint `yaml:"timeout"`      // (sec) used by all protocol as query timeout, default is defaultQueryTimeout.
	IdleTimeout uint `yaml:"idle_timeout"` // (sec) used by tcp, dot, doh as connection idle timeout, default is defaultIdleTimeout.
	// contains filtered or unexported fields
}

ServerConfig is not safe for concurrent use.

Jump to

Keyboard shortcuts

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