diff options
author | 2016-03-19 12:58:08 +0000 | |
---|---|---|
committer | 2016-03-19 13:37:20 +0000 | |
commit | ae5783b7c4fd168799cab639229b7ea6f1ccbbe6 (patch) | |
tree | 4bb1e69e4ba16d5acd3bf115fac4bc57c5e61de3 /middleware/errors/errors.go | |
parent | afc4b85d8654eb4cdff945bc8119af22f6dc4d18 (diff) | |
download | coredns-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.go | 7 |
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 |