ddns

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2019 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Checker

type Checker interface {
	SetEndpoint(endpoint string)
	IPHasChanged(knownIP string) (string, bool, error)
}

Checker checks external IPs

type Domain

type Domain struct {
	Name     string
	Records  []string
	Provider string
}

Domain holds domain info

func ParseDomains

func ParseDomains(records []string, provider string) ([]Domain, error)

ParseDomains parses a slice of string domains into Domain types

func (Domain) HasRecord

func (d Domain) HasRecord(input string) bool

HasRecord returns true if the provided records is in the domain's slice of records

func (Domain) MarshalZerologObject

func (d Domain) MarshalZerologObject(e *zerolog.Event)

MarshalZerologObject marshals a Domain for logging

type Provider

type Provider interface {
	Name() string
	Records(d Domain) ([]ProviderRecord, error)
	UpdateRecord(record ProviderRecord) error
}

Provider is a dns provider

type ProviderRecord

type ProviderRecord struct {
	ID       string
	Domain   string
	Name     string
	Type     string
	Content  string
	Metadata map[string]interface{}
}

ProviderRecord represents a record from a provider

func (ProviderRecord) MarshalZerologObject

func (r ProviderRecord) MarshalZerologObject(e *zerolog.Event)

MarshalZerologObject marshals a ProviderRecord for logging

type Runner

type Runner interface {
	Start(interval string)
	Stop()
}

Runner checks and updates DNS records at an interval

type Updater

type Updater interface {
	RegisterDomains([]Domain)
	RegisterProvider(Provider)
	Update(correlationID string, ip string)
	Stop()
}

Updater updates providers

Directories

Path Synopsis
provider

Jump to

Keyboard shortcuts

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