proxy

package
v1.4.5 Latest Latest
Warning

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

Go to latest
Published: Feb 29, 2016 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Based on net/http/internal

Index

Constants

View Source
const MaxDockerHostname = 64

Variables

View Source
var (
	ErrLineTooLong        = errors.New("header line too long")
	ErrInvalidChunkLength = errors.New("invalid byte in chunk length")
)
View Source
var (
	ErrWeaveCIDRNone = errors.New("the container was created with the '-e WEAVE_CIDR=none' option")
	ErrNoDefaultIPAM = errors.New("the container was created without specifying an IP address with '-e WEAVE_CIDR=...' and the proxy was started with the '--no-default-ipalloc' option")
)
View Source
var (
	ErrNoCommandSpecified = errors.New("No command specified")
)

Functions

This section is empty.

Types

type ChunkedReader added in v1.1.0

type ChunkedReader struct {
	// contains filtered or unexported fields
}

func NewChunkedReader added in v1.1.0

func NewChunkedReader(r io.Reader) *ChunkedReader

Unlike net/http/internal.chunkedReader, this has an interface where we can handle individual chunks. The interface is based on database/sql.Rows.

func (*ChunkedReader) Chunk added in v1.1.0

func (cr *ChunkedReader) Chunk() io.Reader

Chunk returns the io.Reader of the current chunk. On each call, this returns the same io.Reader for a given chunk.

func (*ChunkedReader) Err added in v1.1.0

func (cr *ChunkedReader) Err() error

Err returns the error, if any, that was encountered during iteration.

func (*ChunkedReader) Next added in v1.1.0

func (cr *ChunkedReader) Next() bool

Next prepares the next chunk for reading. It returns true on success, or false if there is no next chunk or an error happened while preparing it. Err should be consulted to distinguish between the two cases.

Every call to Chunk, even the first one, must be preceded by a call to Next.

Calls to Next will discard any unread bytes in the current Chunk.

type Config added in v1.0.0

type Config struct {
	HostnameFromLabel   string
	HostnameMatch       string
	HostnameReplacement string
	Image               string
	ListenAddrs         []string
	RewriteInspect      bool
	NoDefaultIPAM       bool
	NoRewriteHosts      bool
	TLSConfig           TLSConfig
	Version             string
	WithoutDNS          bool
	NoMulticastRoute    bool
	DockerHost          string
}

type ErrNoSuchImage added in v1.0.1

type ErrNoSuchImage struct {
	Name string
}

ErrNoSuchImage replaces docker.NoSuchImage, which does not contain the image name, which in turn breaks docker clients post 1.7.0 since they expect the image name to be present in errors.

func (*ErrNoSuchImage) Error added in v1.0.1

func (err *ErrNoSuchImage) Error() string

type Proxy

type Proxy struct {
	sync.Mutex
	Config
	// contains filtered or unexported fields
}

func NewProxy

func NewProxy(c Config) (*Proxy, error)

func (*Proxy) AttachExistingContainers added in v1.2.0

func (proxy *Proxy) AttachExistingContainers()

func (*Proxy) ContainerDied added in v1.2.0

func (proxy *Proxy) ContainerDied(ident string)

func (*Proxy) ContainerStarted added in v1.2.0

func (proxy *Proxy) ContainerStarted(ident string)

weavedocker.ContainerObserver interface

func (*Proxy) Dial

func (proxy *Proxy) Dial() (net.Conn, error)

func (*Proxy) Intercept added in v1.0.0

func (proxy *Proxy) Intercept(i interceptor, w http.ResponseWriter, r *http.Request)

func (*Proxy) Listen added in v1.2.0

func (proxy *Proxy) Listen() []net.Listener

func (*Proxy) ListenAndServeStatus added in v1.2.0

func (proxy *Proxy) ListenAndServeStatus(socket string)

func (*Proxy) Serve added in v1.2.0

func (proxy *Proxy) Serve(listeners []net.Listener)

func (*Proxy) ServeHTTP

func (proxy *Proxy) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*Proxy) StatusHTTP added in v1.2.0

func (proxy *Proxy) StatusHTTP(w http.ResponseWriter, r *http.Request)

type TLSConfig added in v1.0.0

type TLSConfig struct {
	Enabled, Verify   bool
	Cert, Key, CACert string
	*tls.Config
}

func (*TLSConfig) IsEnabled added in v1.2.0

func (c *TLSConfig) IsEnabled() bool

IsEnabled returns true if TLS is enable, according to the config.

func (*TLSConfig) LoadCerts added in v1.2.0

func (c *TLSConfig) LoadCerts() error

LoadCerts loads the certificates into c.Config, if TLS is enabled.

type UnmarshalWrongTypeError added in v1.1.0

type UnmarshalWrongTypeError struct {
	Field, Expected string
	Got             interface{}
}

func (*UnmarshalWrongTypeError) Error added in v1.1.0

func (e *UnmarshalWrongTypeError) Error() string

Jump to

Keyboard shortcuts

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