File tree Expand file tree Collapse file tree 1 file changed +9
-3
lines changed
Expand file tree Collapse file tree 1 file changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -32,9 +32,10 @@ const (
3232)
3333
3434var (
35- ErrLookup = errors .New ("name lookup failed" )
36- ErrMessageNotResponse = errors .New ("message is not a response" )
37- ErrDomainNoAssociatedIPs = errors .New ("domain name has no associated IP addresses" )
35+ ErrLookup = errors .New ("name lookup failed" )
36+ ErrMessageNotResponse = errors .New ("message is not a response" )
37+ ErrResponseNoRecursionAvailable = errors .New ("response indicates server does not support recursion" )
38+ ErrDomainNoAssociatedIPs = errors .New ("domain name has no associated IP addresses" )
3839)
3940
4041// ResolverConfig configures a DNS resolver.
@@ -635,6 +636,11 @@ func (r *Result) parseMsg(msg []byte) (dnsmessage.Header, error) {
635636 // Continue parsing even if truncated.
636637 // The caller may still want to use the result.
637638
639+ // Check RecursionAvailable.
640+ if ! header .RecursionAvailable {
641+ return dnsmessage.Header {}, ErrResponseNoRecursionAvailable
642+ }
643+
638644 // Check RCode.
639645 if header .RCode != dnsmessage .RCodeSuccess {
640646 return dnsmessage.Header {}, fmt .Errorf ("DNS failure: %s" , header .RCode )
You can’t perform that action at this time.
0 commit comments