ipallocator

package
v1.4.2-0...-296323c Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2015 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoAvailableIPs           = errors.New("no available ip addresses on network")
	ErrIPAlreadyAllocated       = errors.New("ip already allocated")
	ErrIPOutOfRange             = errors.New("requested ip is out of range")
	ErrNetworkAlreadyRegistered = errors.New("network already registered")
	ErrBadSubnet                = errors.New("network does not contain specified subnet")
)

Functions

This section is empty.

Types

type IPAllocator

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

func New

func New() *IPAllocator

func (*IPAllocator) RegisterSubnet

func (a *IPAllocator) RegisterSubnet(network *net.IPNet, subnet *net.IPNet) error

RegisterSubnet registers network in global allocator with bounds defined by subnet. If you want to use network range you must call this method before first RequestIP, otherwise full network range will be used

func (*IPAllocator) ReleaseIP

func (a *IPAllocator) ReleaseIP(network *net.IPNet, ip net.IP) error

ReleaseIP adds the provided ip back into the pool of available ips to be returned for use.

func (*IPAllocator) RequestIP

func (a *IPAllocator) RequestIP(network *net.IPNet, ip net.IP) (net.IP, error)

RequestIP requests an available ip from the given network. It will return the next available ip if the ip provided is nil. If the ip provided is not nil it will validate that the provided ip is available for use or return an error

Jump to

Keyboard shortcuts

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