aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--middleware/etcd/handler.go3
-rw-r--r--middleware/etcd/stub_test.go4
2 files changed, 7 insertions, 0 deletions
diff --git a/middleware/etcd/handler.go b/middleware/etcd/handler.go
index 8e15c1b1a..38e1b51cd 100644
--- a/middleware/etcd/handler.go
+++ b/middleware/etcd/handler.go
@@ -30,6 +30,9 @@ func (e Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i
zone := middleware.Zones(e.Zones).Matches(state.Name())
if zone == "" {
+ if e.Next == nil {
+ return dns.RcodeServerFailure, nil
+ }
return e.Next.ServeDNS(ctx, w, r)
}
diff --git a/middleware/etcd/stub_test.go b/middleware/etcd/stub_test.go
index d1eee5b61..ed3c49a29 100644
--- a/middleware/etcd/stub_test.go
+++ b/middleware/etcd/stub_test.go
@@ -32,6 +32,10 @@ func TestStubLookup(t *testing.T) {
continue
}
resp := rec.Msg()
+ if resp == nil {
+ // etcd not running?
+ continue
+ }
sort.Sort(test.RRSet(resp.Answer))
sort.Sort(test.RRSet(resp.Ns))