Documentation
¶
Index ¶
- Variables
- func Matches(maddr ma.Multiaddr) (matches bool)
- func Resolve(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error)
- type BasicResolver
- type MockResolver
- type Option
- type Resolver
- func (r *Resolver) LookupIPAddr(ctx context.Context, domain string) ([]net.IPAddr, error)
- func (r *Resolver) LookupTXT(ctx context.Context, txt string) ([]string, error)
- func (r *Resolver) LookupTXTWithTTL(ctx context.Context, domain string) ([]string, time.Duration, error)
- func (r *Resolver) Resolve(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error)
- type TXTWithTTLResolver
Constants ¶
This section is empty.
Variables ¶
var ( ResolvableProtocols = []ma.Protocol{dnsaddrProtocol, dns4Protocol, dns6Protocol, dnsProtocol} DefaultResolver = &Resolver{def: net.DefaultResolver} )
Functions ¶
Types ¶
type BasicResolver ¶ added in v0.3.0
type BasicResolver interface {
LookupIPAddr(context.Context, string) ([]net.IPAddr, error)
LookupTXT(context.Context, string) ([]string, error)
}
BasicResolver is a low level interface for DNS resolution
type MockResolver ¶ added in v0.3.0
func (*MockResolver) LookupIPAddr ¶ added in v0.3.0
type Option ¶ added in v0.3.0
func WithDefaultResolver ¶ added in v0.3.0
func WithDefaultResolver(def BasicResolver) Option
WithDefaultResolver is an option that specifies the default basic resolver, which resolves any TLD that doesn't have a custom resolver. Defaults to net.DefaultResolver
func WithDomainResolver ¶ added in v0.3.0
func WithDomainResolver(domain string, rslv BasicResolver) Option
WithDomainResolver specifies a custom resolver for a domain/TLD. Custom resolver selection matches domains left to right, with more specific resolvers superseding generic ones.
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver is an object capable of resolving dns multiaddrs by using one or more BasicResolvers; it supports custom per domain/TLD resolvers. It also implements the BasicResolver interface so that it can act as a custom per domain/TLD resolver.
func NewResolver ¶ added in v0.3.0
NewResolver creates a new Resolver instance with the specified options
func (*Resolver) LookupIPAddr ¶ added in v0.3.0
func (*Resolver) LookupTXTWithTTL ¶ added in v0.6.0
func (r *Resolver) LookupTXTWithTTL(ctx context.Context, domain string) ([]string, time.Duration, error)
LookupTXTWithTTL resolves the TXT records for a domain and, when the resolver the lookup routes to (a matched per-domain resolver, or the default one otherwise) implements TXTWithTTLResolver, also returns their TTL. Resolvers that cannot report a TTL (such as the default OS resolver) yield a TTL of 0, meaning unknown.
type TXTWithTTLResolver ¶ added in v0.6.0
type TXTWithTTLResolver interface {
LookupTXTWithTTL(ctx context.Context, name string) (txt []string, ttl time.Duration, err error)
}
TXTWithTTLResolver is an optional interface a BasicResolver may implement to report the TTL of a TXT record set alongside its values. Resolvers backed by a protocol that carries TTLs (such as DNS-over-HTTPS) can implement it; the default OS resolver cannot.