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) (net.IP, error) }
Resolver resolves our public IP
func NewResolver ¶
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 ¶
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.
Click to show internal directories.
Click to hide internal directories.