Documentation
¶
Index ¶
Constants ¶
const MinCacheCapacity = 1000
const NameCollision = "127.0.53.53"
ICANN specifies that DNS servers should return the special value 127.0.53.53 for A record queries of TLDs that have recently entered the root zone, that have a high likelyhood of colliding with private DNS names. The record returned is a notice to network administrators to adjust their DNS configuration. https://www.icann.org/resources/pages/name-collision-2013-12-06-en#127.0.53.53
Variables ¶
var ( Timeout = 5000 * time.Millisecond TypicalResponseTime = 500 * time.Millisecond MaxRecursion = 10 MaxNameservers = 4 MaxIPs = 2 MaxRetryCount = 5 )
DNS Resolution configuration.
var ( NXDOMAIN = fmt.Errorf("NXDOMAIN") ErrMaxRecursion = fmt.Errorf("maximum recursion depth reached: %d", MaxRecursion) ErrMaxIPs = fmt.Errorf("maximum name server IPs queried: %d", MaxIPs) ErrNoARecords = fmt.Errorf("no A records found for name server") ErrNoResponse = fmt.Errorf("no responses received") ErrTimeout = fmt.Errorf("timeout expired") // TODO: Timeouter interface? e.g. func (e) Timeout() bool { return true } )
Resolver errors.
var DebugLogger io.Writer
DebugLogger will receive writes of DNS resolution traces if not nil.
Functions ¶
This section is empty.
Types ¶
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver implements a primitive, non-recursive, caching DNS resolver.
func NewExpiring ¶
NewExpiring initializes an expiring Resolver with the specified cache size.
func NewExpiringWithTimeout ¶
NewExpiringWithTimeout initializes an expiring Resolved with the specified cache size and resolution timeout.
func NewWithTimeout ¶
NewWithTimeout initializes a Resolver with the specified cache size and resolution timeout.
func (*Resolver) Resolve ¶
Resolve calls ResolveErr to find DNS records of type qtype for the domain qname. For nonexistent domains (NXDOMAIN), it will return an empty, non-nil slice.
func (*Resolver) ResolveCtx ¶
ResolveCtx finds DNS records of type qtype for the domain qname using the supplied context. Requests may time out earlier if timeout is shorter than a deadline set in ctx. For nonexistent domains, it will return an NXDOMAIN error. Specify an empty string in qtype to receive any DNS records found (currently A, AAAA, NS, CNAME, SOA, and TXT).
func (*Resolver) ResolveErr ¶
ResolveErr finds DNS records of type qtype for the domain qname. For nonexistent domains, it will return an NXDOMAIN error. Specify an empty string in qtype to receive any DNS records found (currently A, AAAA, NS, CNAME, SOA, and TXT).