diff options
Diffstat (limited to 'internal/resolver/resolver.go')
| -rw-r--r-- | internal/resolver/resolver.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/internal/resolver/resolver.go b/internal/resolver/resolver.go index c7a0694..3cdf846 100644 --- a/internal/resolver/resolver.go +++ b/internal/resolver/resolver.go @@ -11,8 +11,9 @@ import ( ) var ( - ErrMaxDelegations = errors.New("max delegations exceeded") - ErrNoServers = errors.New("no nameservers available") + ErrMaxDelegations = errors.New("max delegations exceeded") + ErrNoServers = errors.New("no nameservers available") + ErrUnsupportedType = errors.New("unsupported query type") ) type Resolver struct { @@ -251,6 +252,9 @@ func (r *Resolver) exchangeWithRetries(ctx context.Context, servers []string, qname string, qtype uint16, rd bool) (*dns.Msg, error) { msg := dns.NewMsg(qname, qtype) + if msg == nil { + return nil, fmt.Errorf("%w %d for %s", ErrUnsupportedType, qtype, qname) + } msg.UDPSize = 4096 msg.RecursionDesired = rd |
