zone

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const EmptyPlaceholder = "placeholder"

EmptyPlaceholder will be used instead of empty ACME TXT because we cannot really set ""

Variables

View Source
var (
	ErrSoaNotFound    = errors.New("SOA not found")
	ErrRecordNotFound = errors.New("record not found")
	ErrNoMatchers     = errors.New("no record matchers provided")
	ErrOriginChanged  = errors.New("zone origin changed")
	ErrZoneNotFound   = errors.New("zone not found")
)

ErrSoaNotFound emited if zone file does not have SOA record, which is mandatory

Functions

func PrintEntries

func PrintEntries(entries []zonefile.Entry, w io.Writer)

func StripOrigin

func StripOrigin(name, origin string) string

Types

type Controller

type Controller interface {
	// ListZones returns all managed zones.
	ListZones(ctx context.Context) ([]ZoneSnapshot, error)
	// GetZone returns a managed zone by its origin name.
	GetZone(ctx context.Context, zoneName string) (ZoneSnapshot, error)
	// UpdateDDNSAddress changes DDNS A/AAAA records
	UpdateDDNSAddress(ctx context.Context, domain string, addrs []netip.Addr) error
	// UpdateACMEChallenge changes ACME TXT record for DNS-01 challenge
	UpdateACMEChallenge(ctx context.Context, domain string, newToken, oldToken string) error
	// ReplaceRRSet replaces or creates the requested RRSet in a specific zone.
	ReplaceRRSet(ctx context.Context, zoneName, name, typ string, ttl int, values []string) (changed bool, err error)
	// DeleteRRSet removes the requested RRSet from a specific zone.
	DeleteRRSet(ctx context.Context, zoneName, name, typ string) (changed bool, err error)
	// ZMUpdateRecord replace record values
	ZMUpdateRecord(ctx context.Context, domain string, typ string, values []string) (changed bool, err error)
}

Controller implements zone file modification methods

func New

func New(zonefiles ...string) (Controller, error)

type DomainCtrl

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

func (*DomainCtrl) DeleteRRSet added in v0.11.0

func (s *DomainCtrl) DeleteRRSet(ctx context.Context, zoneName, name, typ string) (changed bool, err error)

func (*DomainCtrl) GetZone added in v0.11.0

func (s *DomainCtrl) GetZone(ctx context.Context, zoneName string) (ZoneSnapshot, error)

func (*DomainCtrl) ListZones added in v0.11.0

func (s *DomainCtrl) ListZones(ctx context.Context) ([]ZoneSnapshot, error)

func (*DomainCtrl) ReplaceRRSet added in v0.11.0

func (s *DomainCtrl) ReplaceRRSet(ctx context.Context, zoneName, name, typ string, ttl int, values []string) (changed bool, err error)

func (*DomainCtrl) UpdateACMEChallenge

func (s *DomainCtrl) UpdateACMEChallenge(ctx context.Context, domain string, newToken, oldToken string) error

func (*DomainCtrl) UpdateDDNSAddress

func (s *DomainCtrl) UpdateDDNSAddress(ctx context.Context, domain string, addrs []netip.Addr) error

func (*DomainCtrl) ZMUpdateRecord added in v0.9.0

func (s *DomainCtrl) ZMUpdateRecord(ctx context.Context, domain string, typ string, values []string) (changed bool, err error)

type File

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

func (*File) DeleteRRSet added in v0.11.0

func (s *File) DeleteRRSet(ctx context.Context, name, typ string) (changed bool, err error)

func (*File) ReplaceRRSet added in v0.11.0

func (s *File) ReplaceRRSet(ctx context.Context, name, typ string, ttl int, values []string) (changed bool, err error)

func (*File) Snapshot added in v0.11.0

func (s *File) Snapshot(_ context.Context) (ZoneSnapshot, error)

func (*File) UpdateACMEChallenge

func (s *File) UpdateACMEChallenge(ctx context.Context, domain string, newToken, oldToken string) error

func (*File) UpdateDDNSAddress

func (s *File) UpdateDDNSAddress(ctx context.Context, domain string, addrs []netip.Addr) error

func (*File) ZMUpdateRecord added in v0.9.0

func (s *File) ZMUpdateRecord(ctx context.Context, domain string, typ string, newValues []string) (changed bool, err error)

type Matcher added in v0.9.0

type Matcher struct {
	Domain []byte
	RRType uint16
	Values [][]byte
}

func (Matcher) Match added in v0.9.0

func (m Matcher) Match(e zonefile.Entry) bool

func (Matcher) String added in v0.9.0

func (m Matcher) String() string

type Matchers added in v0.9.0

type Matchers []Matcher

func (Matchers) Match added in v0.9.0

func (mm Matchers) Match(e zonefile.Entry) bool

type RRSet added in v0.11.0

type RRSet struct {
	Name    string
	Type    string
	TTL     int
	Records []string
}

type ZoneSnapshot added in v0.11.0

type ZoneSnapshot struct {
	ID          string
	Name        string
	Serial      uint32
	RRsets      []RRSet
	Nameservers []string
}

Jump to

Keyboard shortcuts

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