setup

package
v0.0.0-...-4a3b57d Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2016 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EmptyNext = middleware.HandlerFunc(func(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
	return 0, nil
})

EmptyNext is a no-op function that can be passed into middleware.Middleware functions so that the assignment to the Next field of the Handler can be tested.

Used primarily for testing but needs to be exported so add-ons can use this as a convenience.

Functions

func BindHost

func BindHost(c *Controller) (middleware.Middleware, error)

BindHost sets the host to bind the listener to.

func Cache

Cache sets up the root file path of the server.

func Chaos

Chaos configures a new Chaos middleware instance.

func Dnssec

func Dnssec(c *Controller) (middleware.Middleware, error)

Dnssec sets up the dnssec middleware.

func Errors

func Errors(c *Controller) (middleware.Middleware, error)

Errors configures a new errors middleware instance.

func Etcd

Etcd sets up the etcd middleware.

func File

File sets up the file middleware.

func Health

func Health(c *Controller) (middleware.Middleware, error)

func Kubernetes

func Kubernetes(c *Controller) (middleware.Middleware, error)

Kubernetes sets up the kubernetes middleware.

func Loadbalance

func Loadbalance(c *Controller) (middleware.Middleware, error)

Loadbalance sets up the root file path of the server.

func Log

Log sets up the logging middleware.

func PProf

PProf returns a new instance of a pprof handler. It accepts no arguments or options.

func Prometheus

func Prometheus(c *Controller) (middleware.Middleware, error)

func Proxy

Proxy configures a new Proxy middleware instance.

func Rewrite

func Rewrite(c *Controller) (middleware.Middleware, error)

Rewrite configures a new Rewrite middleware instance.

func Root

Root sets up the root file path of the server.

func SameNext

func SameNext(next1, next2 middleware.Handler) bool

SameNext does a pointer comparison between next1 and next2.

Used primarily for testing but needs to be exported so add-ons can use this as a convenience.

func Secondary

func Secondary(c *Controller) (middleware.Middleware, error)

Secondary sets up the secondary middleware.

func Shutdown

func Shutdown(c *Controller) (middleware.Middleware, error)

Shutdown registers a shutdown callback to execute during process exit.

func Startup

func Startup(c *Controller) (middleware.Middleware, error)

Startup registers a startup callback to execute during server start.

Types

type Controller

type Controller struct {
	*server.Config
	parse.Dispenser

	// OncePerServerBlock is a function that executes f
	// exactly once per server block, no matter how many
	// hosts are associated with it. If it is the first
	// time, the function f is executed immediately
	// (not deferred) and may return an error which is
	// returned by OncePerServerBlock.
	OncePerServerBlock func(f func() error) error

	// ServerBlockIndex is the 0-based index of the
	// server block as it appeared in the input.
	ServerBlockIndex int

	// ServerBlockHostIndex is the 0-based index of this
	// host as it appeared in the input at the head of the
	// server block.
	ServerBlockHostIndex int

	// ServerBlockHosts is a list of hosts that are
	// associated with this server block. All these
	// hosts, consequently, share the same tokens.
	ServerBlockHosts []string

	// ServerBlockStorage is used by a directive's
	// setup function to persist state between all
	// the hosts on a server block.
	ServerBlockStorage interface{}
}

Controller is given to the setup function of middlewares which gives them access to be able to read tokens and set config. Each virtualhost gets their own server config and dispenser.

func NewTestController

func NewTestController(input string) *Controller

NewTestController creates a new *Controller for the input specified, with a filename of "Testfile". The Config is bare, consisting only of a Root of cwd.

Used primarily for testing but needs to be exported so add-ons can use this as a convenience. Does not initialize the server-block-related fields.

Jump to

Keyboard shortcuts

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