diff options
Diffstat (limited to 'middleware/etcd/handler.go')
-rw-r--r-- | middleware/etcd/handler.go | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/middleware/etcd/handler.go b/middleware/etcd/handler.go index b462d7c5b..331e57793 100644 --- a/middleware/etcd/handler.go +++ b/middleware/etcd/handler.go @@ -1,7 +1,7 @@ package etcd import ( - "fmt" + "errors" "github.com/miekg/coredns/middleware" "github.com/miekg/coredns/middleware/etcd/msg" @@ -18,7 +18,7 @@ func (e *Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) ( opt := middleware.Options{} state := request.Request{W: w, Req: r} if state.QClass() != dns.ClassINET { - return dns.RcodeServerFailure, fmt.Errorf("can only deal with ClassINET") + return dns.RcodeServerFailure, middleware.Error(e.Name(), errors.New("can only deal with ClassINET")) } name := state.Name() if e.Debugging { @@ -43,13 +43,10 @@ func (e *Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) ( zone := middleware.Zones(e.Zones).Matches(state.Name()) if zone == "" { - if e.Next == nil { - return dns.RcodeServerFailure, nil - } if opt.Debug != "" { r.Question[0].Name = opt.Debug } - return e.Next.ServeDNS(ctx, w, r) + return middleware.NextOrFailure(e.Name(), e.Next, ctx, w, r) } var ( |