diff options
Diffstat (limited to 'middleware/middleware.go')
-rw-r--r-- | middleware/middleware.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/middleware/middleware.go b/middleware/middleware.go index 7d0d502b3..9e236c6e0 100644 --- a/middleware/middleware.go +++ b/middleware/middleware.go @@ -82,5 +82,21 @@ func NextOrFailure(name string, next Handler, ctx context.Context, w dns.Respons return dns.RcodeServerFailure, Error(name, errors.New("no next middleware found")) } +// ClientWrite returns true if the response has been written to the client. +// Each middleware to adhire to this protocol. +func ClientWrite(rcode int) bool { + switch rcode { + case dns.RcodeServerFailure: + fallthrough + case dns.RcodeRefused: + fallthrough + case dns.RcodeFormatError: + fallthrough + case dns.RcodeNotImplemented: + return false + } + return true +} + // Namespace is the namespace used for the metrics. const Namespace = "coredns" |