dns

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2026 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CNAMEResolver added in v0.1.1

type CNAMEResolver interface {
	Resolve(ctx context.Context, domain string) (string, error)
}

CNAMEResolver resolves CNAME records for a given domain.

type DNSCNAMEResolver added in v0.1.1

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

DNSCNAMEResolver queries CNAME records directly using miekg/dns.

func NewDNSCNAMEResolver added in v0.1.1

func NewDNSCNAMEResolver(resolver string, timeout time.Duration) *DNSCNAMEResolver

NewDNSCNAMEResolver creates a CNAME resolver. If resolver is empty, it reads the system's /etc/resolv.conf to determine the default DNS server.

func (*DNSCNAMEResolver) Resolve added in v0.1.1

func (r *DNSCNAMEResolver) Resolve(ctx context.Context, domain string) (string, error)

type PowerDNSClient

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

func NewPowerDNSClient

func NewPowerDNSClient(cfg config.PowerDNSConfig, logger *slog.Logger) *PowerDNSClient

func (*PowerDNSClient) DeleteARecords

func (c *PowerDNSClient) DeleteARecords(ctx context.Context, zone, name string) error

DeleteARecords removes all A records for a name.

func (*PowerDNSClient) DeleteTXTRecord

func (c *PowerDNSClient) DeleteTXTRecord(ctx context.Context, zone, name string) error

DeleteTXTRecord removes a TXT record.

func (*PowerDNSClient) Healthy

func (c *PowerDNSClient) Healthy(ctx context.Context) error

Healthy checks if the PowerDNS API is reachable.

func (*PowerDNSClient) SetARecords

func (c *PowerDNSClient) SetARecords(ctx context.Context, zone, name string, ips []string, ttl int) error

SetARecords replaces all A records for a name with the given IPs.

func (*PowerDNSClient) SetRelayRecords

func (c *PowerDNSClient) SetRelayRecords(ctx context.Context, zone, name string, ipv4, ipv6 []string, ttl int) error

SetRelayRecords atomically replaces A and AAAA records for the relay hostname. Empty slices cause the corresponding record type to be deleted.

func (*PowerDNSClient) SetTXTRecord

func (c *PowerDNSClient) SetTXTRecord(ctx context.Context, zone, name, value string, ttl int) error

SetTXTRecord creates or replaces a TXT record.

type RRSet

type RRSet struct {
	Name       string   `json:"name"`
	Type       string   `json:"type"`
	TTL        int      `json:"ttl"`
	ChangeType string   `json:"changetype"`
	Records    []Record `json:"records"`
}

RRSet represents a PowerDNS resource record set.

type Record

type Record struct {
	Content  string `json:"content"`
	Disabled bool   `json:"disabled"`
}

Jump to

Keyboard shortcuts

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