aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--middleware/etcd/stub_cycle_test.go34
-rw-r--r--middleware/etcd/stub_handler.go3
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]