From 842953f17936ac02a7d9c82cb31ef70b5bcc1dc5 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Tue, 12 Apr 2016 21:50:01 +0100 Subject: [PATCH] oops forget to checkin (#111) --- middleware/etcd/stub_cycle_test.go | 34 ++++++------------------------ middleware/etcd/stub_handler.go | 3 ++- 2 files changed, 8 insertions(+), 29 deletions(-) diff --git a/middleware/etcd/stub_cycle_test.go b/middleware/etcd/stub_cycle_test.go index d4fa19384..c2da69876 100644 --- a/middleware/etcd/stub_cycle_test.go +++ b/middleware/etcd/stub_cycle_test.go @@ -3,7 +3,6 @@ package etcd import ( - "sort" "testing" "github.com/miekg/coredns/middleware" @@ -11,7 +10,7 @@ import ( "github.com/miekg/dns" ) -func TestStubLookup(t *testing.T) { +func TestStubCycle(t *testing.T) { // reuse servics from stub_test.go for _, serv := range servicesStub { set(t, etc, serv.Key, 0, serv) @@ -28,34 +27,13 @@ func TestStubLookup(t *testing.T) { rec := middleware.NewResponseRecorder(&test.ResponseWriter{}) _, err := etc.ServeDNS(ctx, rec, m) - if err != nil { - t.Errorf("expected no error, got %v\n", err) + if err == nil { + t.Errorf("expected error, got none") continue } - resp := rec.Msg() - - sort.Sort(test.RRSet(resp.Answer)) - sort.Sort(test.RRSet(resp.Ns)) - sort.Sort(test.RRSet(resp.Extra)) - - if !test.Header(t, tc, resp) { - t.Logf("%v\n", resp) - continue - } - if !test.Section(t, tc, test.Answer, resp.Answer) { - t.Logf("%v\n", resp) - } - if !test.Section(t, tc, test.Ns, resp.Ns) { - t.Logf("%v\n", resp) - } - if !test.Section(t, tc, test.Extra, resp.Extra) { - t.Logf("%v\n", resp) - } + // err should have been, set msg is nil, CoreDNS middlware handling takes + // care of proper error to client. } } -var dnsTestCasesCycleStub = []test.Case{ - { - Qname: "example.org.", Qtype: dns.TypeA, Rcode: dns.RcodeRefused, Do: true, - }, -} +var dnsTestCasesCycleStub = []test.Case{{Qname: "example.org.", Qtype: dns.TypeA, Rcode: dns.RcodeRefused, Do: true}} diff --git a/middleware/etcd/stub_handler.go b/middleware/etcd/stub_handler.go index 4c00e82ee..ed760c7ce 100644 --- a/middleware/etcd/stub_handler.go +++ b/middleware/etcd/stub_handler.go @@ -1,6 +1,7 @@ package etcd import ( + "errors" "log" "github.com/miekg/coredns/middleware" @@ -18,7 +19,7 @@ type Stub struct { func (s Stub) ServeDNS(ctx context.Context, w dns.ResponseWriter, req *dns.Msg) (int, error) { if hasStubEdns0(req) { log.Printf("[WARNING] Forwarding cycle detected, refusing msg: %s", req.Question[0].Name) - return dns.RcodeRefused, nil + return dns.RcodeRefused, errors.New("stub forward cycle") } req = addStubEdns0(req) proxy, ok := (*s.Etcd.Stubmap)[s.Zone]