aboutsummaryrefslogtreecommitdiff
path: root/middleware/middleware.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/middleware.go')
-rw-r--r--middleware/middleware.go16
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"