dynamicip

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 21, 2022 License: BSD-3-Clause Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Resolver

type Resolver interface {
	// Resolve and return our public IP.
	Resolve() (net.IP, error)
}

Resolver resolves our public IP

func NewResolver

func NewResolver(resolverName ResolverName) (Resolver, error)

Returns a new Resolver that uses the given service to resolve our public IP. If [resolverService] isn't one of the above, returns an error

type ResolverName

type ResolverName string
const (

	// TODO remove either ifConfig or ifConfigCo.
	// They do the same thing.
	OpenDNS    ResolverName = "opendns"
	IFConfig   ResolverName = "ifconfig"
	IFConfigCo ResolverName = "ifconfigCo"
	IFConfigMe ResolverName = "ifconfigMe"
)

type Updater

type Updater interface {
	// Start periodically resolving and updating our public IP.
	// Doesn't return until after Stop() is called.
	// Should be called in a goroutine.
	Dispatch(log logging.Logger)
	// Stop resolving and updating our public IP.
	Stop()
}

Updater periodically updates this node's public IP. Dispatch() and Stop() should only be called once.

func NewNoUpdater

func NewNoUpdater() Updater

func NewUpdater

func NewUpdater(
	dynamicIP ips.DynamicIPPort,
	resolver Resolver,
	updateFreq time.Duration,
) Updater

Returns a new Updater that updates [dynamicIP] every [updateFreq]. Uses [resolver] to find out what our public IP is.

Jump to

Keyboard shortcuts

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