docker: github.com/docker/docker/vendor/github.com/docker/libnetwork/portallocator Index | Files

package portallocator

import "github.com/docker/docker/vendor/github.com/docker/libnetwork/portallocator"

Index

Package Files

portallocator.go portallocator_linux.go

Variables

var (
    // ErrAllPortsAllocated is returned when no more ports are available
    ErrAllPortsAllocated = errors.New("all ports are allocated")
    // ErrUnknownProtocol is returned when an unknown protocol was specified
    ErrUnknownProtocol = errors.New("unknown protocol")
)

type ErrPortAlreadyAllocated Uses

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

ErrPortAlreadyAllocated is the returned error information when a requested port is already being used

func (ErrPortAlreadyAllocated) Error Uses

func (e ErrPortAlreadyAllocated) Error() string

Error is the implementation of error.Error interface

func (ErrPortAlreadyAllocated) IP Uses

func (e ErrPortAlreadyAllocated) IP() string

IP returns the address to which the used port is associated

func (ErrPortAlreadyAllocated) IPPort Uses

func (e ErrPortAlreadyAllocated) IPPort() string

IPPort returns the address and the port in the form ip:port

func (ErrPortAlreadyAllocated) Port Uses

func (e ErrPortAlreadyAllocated) Port() int

Port returns the value of the already used port

type PortAllocator Uses

type PortAllocator struct {
    Begin int
    End   int
    // contains filtered or unexported fields
}

PortAllocator manages the transport ports database

func Get Uses

func Get() *PortAllocator

Get returns the default instance of PortAllocator

func (*PortAllocator) ReleaseAll Uses

func (p *PortAllocator) ReleaseAll() error

ReleaseAll releases all ports for all ips.

func (*PortAllocator) ReleasePort Uses

func (p *PortAllocator) ReleasePort(ip net.IP, proto string, port int) error

ReleasePort releases port from global ports pool for specified ip and proto.

func (*PortAllocator) RequestPort Uses

func (p *PortAllocator) RequestPort(ip net.IP, proto string, port int) (int, error)

RequestPort requests new port from global ports pool for specified ip and proto. If port is 0 it returns first free port. Otherwise it checks port availability in proto's pool and returns that port or error if port is already busy.

func (*PortAllocator) RequestPortInRange Uses

func (p *PortAllocator) RequestPortInRange(ip net.IP, proto string, portStart, portEnd int) (int, error)

RequestPortInRange requests new port from global ports pool for specified ip and proto. If portStart and portEnd are 0 it returns the first free port in the default ephemeral range. If portStart != portEnd it returns the first free port in the requested range. Otherwise (portStart == portEnd) it checks port availability in the requested proto's port-pool and returns that port or error if port is already busy.

func (*PortAllocator) SetPortRange Uses

func (p *PortAllocator) SetPortRange(portBegin, portEnd int) error

SetPortRange sets dynamic port allocation range. if both portBegin and portEnd are 0, the port range reverts to default value. Otherwise they are sanitized against the default values to ensure their validity.

Package portallocator imports 7 packages (graph). Updated 2020-03-03. Refresh now. Tools for package owners.