package madns
import "github.com/multiformats/go-multiaddr-dns"
Index ¶
- Variables
- func Matches(maddr ma.Multiaddr) (matches bool)
- func Resolve(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error)
- type BasicResolver
- type MockResolver
- func (r *MockResolver) LookupIPAddr(ctx context.Context, name string) ([]net.IPAddr, error)
- func (r *MockResolver) LookupTXT(ctx context.Context, name string) ([]string, error)
- type Option
- func WithDefaultResolver(def BasicResolver) Option
- func WithDomainResolver(domain string, rslv BasicResolver) Option
- type Resolver
- func NewResolver(opts ...Option) (*Resolver, error)
- 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) Resolve(ctx context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error)
Variables ¶
var ( ResolvableProtocols = []ma.Protocol{dnsaddrProtocol, dns4Protocol, dns6Protocol, dnsProtocol} DefaultResolver = &Resolver{def: net.DefaultResolver} )
Functions ¶
func Matches ¶
func Resolve ¶
Types ¶
type BasicResolver ¶
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 ¶
func (*MockResolver) LookupIPAddr ¶
func (*MockResolver) LookupTXT ¶
type Option ¶
func WithDefaultResolver ¶
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 ¶
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 ¶
NewResolver creates a new Resolver instance with the specified options
func (*Resolver) LookupIPAddr ¶
func (*Resolver) LookupTXT ¶
func (*Resolver) Resolve ¶
Resolve resolves a DNS multiaddr. It will only resolve the first DNS component in the multiaddr. If you need to resolve multiple DNS components, you may call this function again with each returned address.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
madns |
- Version
- v0.4.1 (latest)
- Published
- Nov 26, 2024
- Platform
- linux/amd64
- Imports
- 5 packages
- Last checked
- 3 weeks ago –
Tools for package owners.