dns

package
v1.3.6 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: MIT Imports: 32 Imported by: 0

README

This is a fork of https://pkg.go.dev/tailscale.com@v1.34.2/net/dns with modification to fit ctrld use case.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type HostEntry

type HostEntry struct {
	Addr  netip.Addr
	Hosts []string
}

HostEntry represents a single line in the OS's hosts file.

type OSConfig

type OSConfig struct {
	// Hosts is a map of DNS FQDNs to their IPs, which should be added to the
	// OS's hosts file. Currently, (2022-08-12) it is only populated for Windows
	// in SplitDNS mode and with Smart Name Resolution turned on.
	Hosts []*HostEntry
	// Nameservers are the IP addresses of the nameservers to use.
	Nameservers []netip.Addr
	// SearchDomains are the domain suffixes to use when expanding
	// single-label name queries. SearchDomains is additive to
	// whatever non-Tailscale search domains the OS has.
	SearchDomains []dnsname.FQDN
	// MatchDomains are the DNS suffixes for which Nameservers should
	// be used. If empty, Nameservers is installed as the "primary" resolver.
	MatchDomains []dnsname.FQDN
}

OSConfig is an OS DNS configuration.

func (OSConfig) Equal

func (a OSConfig) Equal(b OSConfig) bool

func (OSConfig) Format

func (a OSConfig) Format(f fmt.State, verb rune)

Format implements the fmt.Formatter interface to ensure that Hosts is printed correctly (i.e. not as a bunch of pointers).

Fixes https://github.com/tailscale/tailscale/issues/5669

func (OSConfig) IsZero

func (o OSConfig) IsZero() bool

type OSConfigurator

type OSConfigurator interface {
	// SetDNS updates the OS's DNS configuration to match cfg.
	// If cfg is the zero value, all ctrld-related DNS
	// configuration is removed.
	// SetDNS must not be called after Close.
	// SetDNS takes ownership of cfg.
	SetDNS(cfg OSConfig) error

	// Close removes ctrld-related DNS configuration from the OS.
	Close() error

	Mode() string
}

An OSConfigurator applies DNS settings to the operating system.

func NewOSConfigurator

func NewOSConfigurator(logf logger.Logf, interfaceName string) (ret OSConfigurator, err error)

Directories

Path Synopsis
Package resolvconffile parses & serializes /etc/resolv.conf-style files.
Package resolvconffile parses & serializes /etc/resolv.conf-style files.

Jump to

Keyboard shortcuts

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