aboutsummaryrefslogtreecommitdiff
path: root/middleware/errors/errors.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-03-19 12:58:08 +0000
committerGravatar Miek Gieben <miek@miek.nl> 2016-03-19 13:37:20 +0000
commitae5783b7c4fd168799cab639229b7ea6f1ccbbe6 (patch)
tree4bb1e69e4ba16d5acd3bf115fac4bc57c5e61de3 /middleware/errors/errors.go
parentafc4b85d8654eb4cdff945bc8119af22f6dc4d18 (diff)
downloadcoredns-ae5783b7c4fd168799cab639229b7ea6f1ccbbe6.tar.gz
coredns-ae5783b7c4fd168799cab639229b7ea6f1ccbbe6.tar.zst
coredns-ae5783b7c4fd168799cab639229b7ea6f1ccbbe6.zip
Errors directive testing and fixing
Drop a few tests and make it work and compile. Also add the documentation: errors.md
Diffstat (limited to 'middleware/errors/errors.go')
-rw-r--r--middleware/errors/errors.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/middleware/errors/errors.go b/middleware/errors/errors.go
index d64398c71..dbef5770a 100644
--- a/middleware/errors/errors.go
+++ b/middleware/errors/errors.go
@@ -24,12 +24,13 @@ type ErrorHandler struct {
}
func (h ErrorHandler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
- defer h.recovery(w, r)
+ defer h.recovery(ctx, w, r)
rcode, err := h.Next.ServeDNS(ctx, w, r)
if err != nil {
- errMsg := fmt.Sprintf("%s [ERROR %d %s %s] %v", time.Now().Format(timeFormat), rcode, r.Question[0].Name, dns.Type(r.Question[0].Qclass), err)
+ state := middleware.State{W: w, Req: r}
+ errMsg := fmt.Sprintf("%s [ERROR %d %s %s] %v", time.Now().Format(timeFormat), rcode, state.Name(), state.Type(), err)
if h.Debug {
// Write error to response as a txt message instead of to log
@@ -45,7 +46,7 @@ func (h ErrorHandler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns
return rcode, err
}
-func (h ErrorHandler) recovery(w dns.ResponseWriter, r *dns.Msg) {
+func (h ErrorHandler) recovery(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) {
rec := recover()
if rec == nil {
return