diff options
author | 2017-08-07 07:39:57 -0700 | |
---|---|---|
committer | 2017-08-07 07:39:57 -0700 | |
commit | 468d5b57de34e269a3c394385db146d98473d6e7 (patch) | |
tree | 6957eeec368ae2862794aa0c935545b8e99a9b93 /middleware/middleware.go | |
parent | 760e66706381ada5c4a589650175d07e8aeb09f0 (diff) | |
download | coredns-468d5b57de34e269a3c394385db146d98473d6e7.tar.gz coredns-468d5b57de34e269a3c394385db146d98473d6e7.tar.zst coredns-468d5b57de34e269a3c394385db146d98473d6e7.zip |
core: export ClientWrite (#849)
Make ClientWrite available for middleware to use.
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" |