diff options
author | 2017-08-25 08:55:53 +0100 | |
---|---|---|
committer | 2017-08-25 08:55:53 +0100 | |
commit | 55dafe6f594781568a0060ee57f62858a77f3b21 (patch) | |
tree | 5684729cbbaea397084ada047d8e985425a1170d /middleware | |
parent | 932639ac9983a7b0cfaf9d0d967d8147f64b63ee (diff) | |
download | coredns-55dafe6f594781568a0060ee57f62858a77f3b21.tar.gz coredns-55dafe6f594781568a0060ee57f62858a77f3b21.tar.zst coredns-55dafe6f594781568a0060ee57f62858a77f3b21.zip |
core: block CH queries earlier (#973)
block chaos queries, unless the chaos or proxy middleware is loaded. We
respond with REFUSED.
This removes the need for each middleware to do this class != ClassINET
if-then.
Also make config.Registry non-public.
Diffstat (limited to 'middleware')
-rw-r--r-- | middleware/auto/auto.go | 4 | ||||
-rw-r--r-- | middleware/etcd/handler.go | 6 | ||||
-rw-r--r-- | middleware/file/file.go | 4 | ||||
-rw-r--r-- | middleware/hosts/hosts.go | 4 | ||||
-rw-r--r-- | middleware/kubernetes/handler.go | 5 |
5 files changed, 1 insertions, 22 deletions
diff --git a/middleware/auto/auto.go b/middleware/auto/auto.go index 019613a0f..31fe53e23 100644 --- a/middleware/auto/auto.go +++ b/middleware/auto/auto.go @@ -2,7 +2,6 @@ package auto import ( - "errors" "regexp" "time" @@ -43,9 +42,6 @@ type ( // ServeDNS implements the middleware.Handle interface. func (a Auto) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { state := request.Request{W: w, Req: r} - if state.QClass() != dns.ClassINET { - return dns.RcodeServerFailure, middleware.Error(a.Name(), errors.New("can only deal with ClassINET")) - } qname := state.Name() // TODO(miek): match the qname better in the map diff --git a/middleware/etcd/handler.go b/middleware/etcd/handler.go index a5e5f1b80..2de6fb629 100644 --- a/middleware/etcd/handler.go +++ b/middleware/etcd/handler.go @@ -1,8 +1,6 @@ package etcd import ( - "errors" - "github.com/coredns/coredns/middleware" "github.com/coredns/coredns/middleware/etcd/msg" "github.com/coredns/coredns/middleware/pkg/debug" @@ -17,9 +15,7 @@ import ( func (e *Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { opt := middleware.Options{} state := request.Request{W: w, Req: r} - if state.QClass() != dns.ClassINET { - return dns.RcodeServerFailure, middleware.Error(e.Name(), errors.New("can only deal with ClassINET")) - } + name := state.Name() if e.Debugging { if bug := debug.IsDebug(name); bug != "" { diff --git a/middleware/file/file.go b/middleware/file/file.go index 8a4cd27e2..27ab0cd1b 100644 --- a/middleware/file/file.go +++ b/middleware/file/file.go @@ -2,7 +2,6 @@ package file import ( - "errors" "fmt" "io" "log" @@ -32,9 +31,6 @@ type ( func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { state := request.Request{W: w, Req: r} - if state.QClass() != dns.ClassINET { - return dns.RcodeServerFailure, middleware.Error(f.Name(), errors.New("can only deal with ClassINET")) - } qname := state.Name() // TODO(miek): match the qname better in the map zone := middleware.Zones(f.Zones.Names).Matches(qname) diff --git a/middleware/hosts/hosts.go b/middleware/hosts/hosts.go index 68bd41b34..28efc47ec 100644 --- a/middleware/hosts/hosts.go +++ b/middleware/hosts/hosts.go @@ -1,7 +1,6 @@ package hosts import ( - "errors" "net" "golang.org/x/net/context" @@ -23,9 +22,6 @@ type Hosts struct { // ServeDNS implements the middleware.Handle interface. func (h Hosts) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { state := request.Request{W: w, Req: r} - if state.QClass() != dns.ClassINET { - return dns.RcodeServerFailure, middleware.Error(h.Name(), errors.New("can only deal with ClassINET")) - } qname := state.Name() answers := []dns.RR{} diff --git a/middleware/kubernetes/handler.go b/middleware/kubernetes/handler.go index 871605ef9..b6cc703b7 100644 --- a/middleware/kubernetes/handler.go +++ b/middleware/kubernetes/handler.go @@ -1,8 +1,6 @@ package kubernetes import ( - "errors" - "github.com/coredns/coredns/middleware" "github.com/coredns/coredns/middleware/pkg/dnsutil" "github.com/coredns/coredns/request" @@ -14,9 +12,6 @@ import ( // ServeDNS implements the middleware.Handler interface. func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { state := request.Request{W: w, Req: r} - if state.QClass() != dns.ClassINET { - return dns.RcodeServerFailure, middleware.Error(k.Name(), errors.New("can only deal with ClassINET")) - } m := new(dns.Msg) m.SetReply(r) |