diff --git a/agent/dns.go b/agent/dns.go index cc508749a..5156ced7a 100644 --- a/agent/dns.go +++ b/agent/dns.go @@ -829,7 +829,7 @@ func (d *DNSServer) computeRCode(err error) int { return dns.RcodeSuccess } dErr := err.Error() - if dErr == structs.ErrNoDCPath.Error() || dErr == consul.ErrQueryNotFound.Error() { + if structs.IsErrNoDCPath(err) || dErr == consul.ErrQueryNotFound.Error() { return dns.RcodeNameError } return dns.RcodeServerFailure diff --git a/agent/structs/errors.go b/agent/structs/errors.go index 9d04b1ed5..0f0334e1d 100644 --- a/agent/structs/errors.go +++ b/agent/structs/errors.go @@ -26,6 +26,10 @@ var ( ErrDCNotAvailable = errors.New(errDCNotAvailable) ) +func IsErrNoDCPath(err error) bool { + return err != nil && strings.Contains(err.Error(), errNoDCPath) +} + func IsErrNoLeader(err error) bool { return err != nil && strings.Contains(err.Error(), errNoLeader) }