dnstype
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package dnstype defines types for working with DNS.
Index¶
- func Clone(dst, src any) bool
- type Resolver
- type ResolverView
- func (v ResolverView) Addr() string
- func (v ResolverView) AsStruct() *Resolver
- func (v ResolverView) BootstrapResolution() views.Slice[netip.Addr]
- func (v ResolverView) Equal(v2 ResolverView) bool
- func (v ResolverView) MarshalJSON() ([]byte, error)
- func (v ResolverView) MarshalJSONTo(enc *jsontext.Encoder) error
- func (v *ResolverView) UnmarshalJSON(b []byte) error
- func (v *ResolverView) UnmarshalJSONFrom(dec *jsontext.Decoder) error
- func (v ResolverView) UseWithExitNode() bool
- func (v ResolverView) Valid() bool
Constants¶
This section is empty.
Variables¶
This section is empty.
Functions¶
Types¶
typeResolver¶
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.// - "https://resolver.com/path" for DNS over HTTPS; currently// as of 2022-09-08 only used for certain well-known resolvers// (see the publicdns package) for which the IP addresses to dial DoH are// known ahead of time, so bootstrap DNS resolution is not required.// - "http://node-address:port/path" for DNS over HTTP over WireGuard. This// is implemented in the PeerAPI for exit nodes and app connectors.// - [TODO] "tls://resolver.com" for DNS over TCP+TLSAddrstring `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.//// As of 2022-09-08, BootstrapResolution is not yet used.BootstrapResolution []netip.Addr `json:",omitempty"`// UseWithExitNode designates that this resolver should continue to be used when an// exit node is in use. Normally, DNS resolution is delegated to the exit node but// there are situations where it is preferable to still use a Split DNS server and/or// global DNS server instead of the exit node.UseWithExitNodebool `json:",omitempty"`}Resolver is the configuration for one DNS resolver.
func (*Resolver)Clone¶
Clone makes a deep copy of Resolver.The result aliases no memory with the original.
func (*Resolver)IPPort¶added inv1.24.0
IPPort returns r.Addr as an IP address and port if eitherr.Addr is an IP address (the common case) or if r.Addris an IP:port (as done in tests).
func (*Resolver)View¶added inv1.26.0
func (p *Resolver) View()ResolverView
View returns a read-only view of Resolver.
typeResolverView¶added inv1.26.0
type ResolverView struct {// contains filtered or unexported fields}ResolverView provides a read-only view over Resolver.
Its methods should only be called if `Valid()` returns true.
func (ResolverView)Addr¶added inv1.26.0
func (vResolverView) Addr()string
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.
- "https://resolver.com/path" for DNS over HTTPS; currentlyas of 2022-09-08 only used for certain well-known resolvers(see the publicdns package) for which the IP addresses to dial DoH areknown ahead of time, so bootstrap DNS resolution is not required.
- "http://node-address:port/path" for DNS over HTTP over WireGuard. Thisis implemented in the PeerAPI for exit nodes and app connectors.
- [TODO] "tls://resolver.com" for DNS over TCP+TLS
func (ResolverView)AsStruct¶added inv1.26.0
func (vResolverView) AsStruct() *Resolver
AsStruct returns a clone of the underlying value which aliases no memory withthe original.
func (ResolverView)BootstrapResolution¶added inv1.26.0
func (vResolverView) BootstrapResolution()views.Slice[netip.Addr]
BootstrapResolution is an optional suggested resolution for theDoT/DoH resolver, if the resolver URL does not reference an IPaddress directly.BootstrapResolution may be empty, in which case clients shouldlook up the DoT/DoH server using their local "classic" DNSresolver.
As of 2022-09-08, BootstrapResolution is not yet used.
func (ResolverView)Equal¶added inv1.50.0
func (vResolverView) Equal(v2ResolverView)bool
func (ResolverView)MarshalJSON¶added inv1.26.0
func (vResolverView) MarshalJSON() ([]byte,error)
MarshalJSON implementsjsonv1.Marshaler.
func (ResolverView)MarshalJSONTo¶added inv1.88.0
func (vResolverView) MarshalJSONTo(enc *jsontext.Encoder)error
MarshalJSONTo implementsjsonv2.MarshalerTo.
func (*ResolverView)UnmarshalJSON¶added inv1.26.0
func (v *ResolverView) UnmarshalJSON(b []byte)error
UnmarshalJSON implementsjsonv1.Unmarshaler.
func (*ResolverView)UnmarshalJSONFrom¶added inv1.88.0
func (v *ResolverView) UnmarshalJSONFrom(dec *jsontext.Decoder)error
UnmarshalJSONFrom implementsjsonv2.UnmarshalerFrom.
func (ResolverView)UseWithExitNode¶added inv1.88.0
func (vResolverView) UseWithExitNode()bool
UseWithExitNode designates that this resolver should continue to be used when anexit node is in use. Normally, DNS resolution is delegated to the exit node butthere are situations where it is preferable to still use a Split DNS server and/orglobal DNS server instead of the exit node.
func (ResolverView)Valid¶added inv1.26.0
func (vResolverView) Valid()bool
Valid reports whether v's underlying value is non-nil.