dynamicip

package
v1.11.11-rc.0 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2024 License: BSD-3-Clause Imports: 13 Imported by: 13

Documentation

Index

Constants

View Source
const (

	// Note: All of the names below must be lowercase
	// because we lowercase the user's input in NewResolver.
	// TODO remove either ifConfig or ifConfigCo.
	// They do the same thing.
	OpenDNSName    = "opendns"
	IFConfigName   = "ifconfig"
	IFConfigCoName = "ifconfigco"
	IFConfigMeName = "ifconfigme"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Resolver

type Resolver interface {
	// Resolve and return our public IP.
	Resolve(context.Context) (netip.Addr, error)
}

Resolver resolves our public IP

func NewResolver

func NewResolver(resolverName string) (Resolver, error)

Returns a new Resolver that uses the given service to resolve our public IP. [resolverName] must be one of: OpenDNSName, IFConfigName, IFConfigCoName, IFConfigMeName. If [resolverService] isn't one of the above, returns an error

type Updater added in v1.7.13

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 added in v1.7.13

func NewNoUpdater() Updater

func NewUpdater added in v1.7.13

func NewUpdater(
	dynamicIP *utils.Atomic[netip.AddrPort],
	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