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