dnstype

package
v1.26.1 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2022 License: BSD-3-Clause Imports: 4 Imported by: 18

Documentation

Overview

Package dnstype defines types for working with DNS.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Clone

func Clone(dst, src any) bool

Clone duplicates src into dst and reports whether it succeeded. To succeed, <src, dst> must be of types <*T, *T> or <*T, **T>, where T is one of Resolver.

Types

type Resolver

type Resolver struct {
	// Addr is the address of the DNS resolver, one of:
	//  - A plain IP address for a "classic" UDP+TCP DNS resolver.
	//    This is the common format as sent by the control plane.
	//  - An IP:port, for tests.
	//  - [TODO] "tls://resolver.com" for DNS over TCP+TLS
	//  - [TODO] "https://resolver.com/query-tmpl" for DNS over HTTPS
	Addr string `json:",omitempty"`

	// BootstrapResolution is an optional suggested resolution for the
	// DoT/DoH resolver, if the resolver URL does not reference an IP
	// address directly.
	// BootstrapResolution may be empty, in which case clients should
	// look up the DoT/DoH server using their local "classic" DNS
	// resolver.
	BootstrapResolution []netaddr.IP `json:",omitempty"`
}

Resolver is the configuration for one DNS resolver.

func (*Resolver) Clone

func (src *Resolver) Clone() *Resolver

Clone makes a deep copy of Resolver. The result aliases no memory with the original.

func (*Resolver) IPPort added in v1.24.0

func (r *Resolver) IPPort() (ipp netaddr.IPPort, ok bool)

IPPort returns r.Addr as an IP address and port if either r.Addr is an IP address (the common case) or if r.Addr is an IP:port (as done in tests).

func (*Resolver) View added in v1.26.0

func (p *Resolver) View() ResolverView

View returns a readonly view of Resolver.

type ResolverView added in v1.26.0

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

ResolverView provides a read-only view on Resolver. It's methods should only be called if `Valid()` returns true.

func (ResolverView) Addr added in v1.26.0

func (v ResolverView) Addr() string

func (ResolverView) AsStruct added in v1.26.0

func (v ResolverView) AsStruct() *Resolver

AsStruct returns a clone of the underlying value which aliases no memory with the original.

func (ResolverView) BootstrapResolution added in v1.26.0

func (v ResolverView) BootstrapResolution() views.Slice[netaddr.IP]

func (ResolverView) MarshalJSON added in v1.26.0

func (v ResolverView) MarshalJSON() ([]byte, error)

func (*ResolverView) UnmarshalJSON added in v1.26.0

func (v *ResolverView) UnmarshalJSON(b []byte) error

func (ResolverView) Valid added in v1.26.0

func (v ResolverView) Valid() bool

Valid reports whether underlying value is non-nil.

Jump to

Keyboard shortcuts

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