From bcdc99ab11b4fb6c6ebb06cfa0ae15ed269ad02e Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Thu, 7 Sep 2017 18:21:37 +0100 Subject: [PATCH] mw/etcd: fix 'fallthrough' (#1026) * mw/etcd: revert 'add fallthrough' This removes 'fallthrough' for *etcd* which is not needed. This was added in 00f5c7797 but is totally not needed and creates backwards incompat behavior even. Thanks to @johnbelamaric for pointing this out in #925. * remove here as well * Revert "remove here as well" This reverts commit 9d44397827425e567af01d43564c4294b42e98c9. * Revert "mw/etcd: revert 'add fallthrough'" This reverts commit 0cfe3cb1ab5495ed38a8a0486e3f5386f3bd95dc. * mw/{etcd,kubernetes}: use fallthrough correctly reverts of reverts, will rebase and squash later. --- middleware/etcd/handler.go | 8 ++++---- middleware/kubernetes/handler.go | 5 +---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/middleware/etcd/handler.go b/middleware/etcd/handler.go index 2de6fb629..4758f8aab 100644 --- a/middleware/etcd/handler.go +++ b/middleware/etcd/handler.go @@ -42,10 +42,7 @@ func (e *Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) ( if opt.Debug != "" { r.Question[0].Name = opt.Debug } - if e.Fallthrough { - return middleware.NextOrFailure(e.Name(), e.Next, ctx, w, r) - } - return dns.RcodeServerFailure, nil + return middleware.NextOrFailure(e.Name(), e.Next, ctx, w, r) } var ( @@ -88,6 +85,9 @@ func (e *Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) ( } if e.IsNameError(err) { + if e.Fallthrough { + return middleware.NextOrFailure(e.Name(), e.Next, ctx, w, r) + } // Make err nil when returning here, so we don't log spam for NXDOMAIN. return middleware.BackendError(e, zone, dns.RcodeNameError, state, debug, nil /* err */, opt) } diff --git a/middleware/kubernetes/handler.go b/middleware/kubernetes/handler.go index b6cc703b7..58aecfe1a 100644 --- a/middleware/kubernetes/handler.go +++ b/middleware/kubernetes/handler.go @@ -19,10 +19,7 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M zone := middleware.Zones(k.Zones).Matches(state.Name()) if zone == "" { - if k.Fallthrough { - return middleware.NextOrFailure(k.Name(), k.Next, ctx, w, r) - } - return dns.RcodeServerFailure, nil + return middleware.NextOrFailure(k.Name(), k.Next, ctx, w, r) } state.Zone = zone