proxy

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2015 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrAlreadyUpdateStarted = errors.New("Periodical updating is already running")

Functions

func NewProxy

func NewProxy(transport *http.Transport, router *Router, e engine.Transformable, advertiseUrl string) http.Handler

func NewReadonlyProxy

func NewReadonlyProxy(transport *http.Transport, router *Router, e engine.Transformable, advertiseUrl string) http.Handler

Types

type Backend

type Backend struct {
	sync.Mutex
	Url       *url.URL
	Available bool
	// contains filtered or unexported fields
}

func DiscoverBackendsFromDns

func DiscoverBackendsFromDns(transport *http.Transport, domain string) ([]*Backend, error)

func DiscoverBackendsFromEtcd

func DiscoverBackendsFromEtcd(transport *http.Transport, urls []*url.URL) []*Backend

func DiscoverBackendsFromEtcdPeer

func DiscoverBackendsFromEtcdPeer(transport *http.Transport, urls []*url.URL) []*Backend

func NewBackend

func NewBackend(url *url.URL) *Backend

func (*Backend) Fail

func (backend *Backend) Fail()

func (*Backend) Ok

func (backend *Backend) Ok()

type BackendUpdateFunc

type BackendUpdateFunc func() ([]*Backend, error)

type ClosableBuffer

type ClosableBuffer struct {
	*bytes.Buffer
}

func (ClosableBuffer) Close

func (buf ClosableBuffer) Close() error

type Proxy

type Proxy struct {
	Transport    *http.Transport
	Router       *Router
	Engine       engine.Transformable
	AdvertiseUrl string
}

func (*Proxy) ServeHTTP

func (proxy *Proxy) ServeHTTP(response http.ResponseWriter, request *http.Request)

type Router

type Router struct {
	sync.RWMutex

	UpdateFunc     BackendUpdateFunc
	UpdateInterval time.Duration
	// contains filtered or unexported fields
}

func NewRouter

func NewRouter(interval time.Duration, updateFunc BackendUpdateFunc) *Router

func (*Router) AvailableBackends

func (router *Router) AvailableBackends() []*Backend

func (*Router) Backends

func (router *Router) Backends() []*Backend

func (*Router) FailedBackends

func (router *Router) FailedBackends() []*Backend

func (*Router) ShuffledAvailableBackends

func (router *Router) ShuffledAvailableBackends() []*Backend

func (*Router) StartUpdate

func (router *Router) StartUpdate() error

func (*Router) StopUpdate

func (router *Router) StopUpdate()

func (*Router) Update

func (router *Router) Update()

Jump to

Keyboard shortcuts

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