Skip to content

Commit eda7056

Browse files
committed
handle non-success codes for top-level queries
1 parent 7c792a4 commit eda7056

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

resolver.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,17 @@ func (r *resolver) Query(ctx context.Context, recordType string, domainName stri
342342
continue
343343
}
344344

345-
if resp.Rcode != dns.RcodeSuccess {
345+
if stack.size() == 0 {
346+
switch resp.Rcode {
347+
case dns.RcodeSuccess:
348+
case dns.RcodeNameError:
349+
return rs, fmt.Errorf("%s %s: %w", rs.Type, rs.Name, ErrNXDomain)
350+
case dns.RcodeServerFailure:
351+
continue
352+
default:
353+
return rs, fmt.Errorf("%s %s: %s", rs.Type, rs.Name, dns.RcodeToString[resp.Rcode])
354+
}
355+
} else if resp.Rcode != dns.RcodeSuccess {
346356
continue
347357
}
348358

0 commit comments

Comments
 (0)