diff options
author | 2018-05-23 13:50:27 +0100 | |
---|---|---|
committer | 2018-05-23 08:50:27 -0400 | |
commit | 0f74281a533a86b7b5ccaa0173d440d80d709308 (patch) | |
tree | 2d110f60e588614ebe77af1c6e5be2faf06f2990 /test | |
parent | 49891d21037fbcf699d9376a39c23762fdb16899 (diff) | |
download | coredns-0f74281a533a86b7b5ccaa0173d440d80d709308.tar.gz coredns-0f74281a533a86b7b5ccaa0173d440d80d709308.tar.zst coredns-0f74281a533a86b7b5ccaa0173d440d80d709308.zip |
Revert pkg/nonwriter changes (#1829)
The DoH work (#1619) made changes to pkg/nonwriter.Writer that in
hindsight were not backwards compatible; it added override for the
LocalAddr() and RemoteAddr(). Instead of rolling back that PR, this PR
reverts those changes and creates a DoHWriter for use in the
https-server.go side of things.
This was only caught in the integration test making this hard to catch,
so we add a upstream_file_test.go that tries (doesn't work yet) to test
this in the unit tests as well. Esp. helpful when 'git bisecting'.
Fixes #1826
Diffstat (limited to 'test')
-rw-r--r-- | test/file_upstream_test.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/file_upstream_test.go b/test/file_upstream_test.go new file mode 100644 index 000000000..5a24e12c4 --- /dev/null +++ b/test/file_upstream_test.go @@ -0,0 +1,60 @@ +package test + +import ( + "testing" + + "github.com/miekg/dns" +) + +// TODO(miek): this test needs to be fleshed out. + +func TestFileUpstream(t *testing.T) { + name, rm, err := TempFile(".", `$ORIGIN example.org. +@ 3600 IN SOA sns.dns.icann.org. noc.dns.icann.org. ( + 2017042745 ; serial + 7200 ; refresh (2 hours) + 3600 ; retry (1 hour) + 1209600 ; expire (2 weeks) + 3600 ; minimum (1 hour) + ) + + 3600 IN NS a.iana-servers.net. + 3600 IN NS b.iana-servers.net. + +www 3600 IN CNAME www.example.net. +`) + if err != nil { + t.Fatalf("Failed to create zone: %s", err) + } + defer rm() + + // Corefile with for example without proxy section. + corefile := `example.org:0 { + file ` + name + ` { + upstream + } + hosts { + 10.0.0.1 www.example.net. + fallthrough + } +} +` + i, udp, _, err := CoreDNSServerAndPorts(corefile) + if err != nil { + t.Fatalf("Could not get CoreDNS serving instance: %s", err) + } + defer i.Stop() + + m := new(dns.Msg) + m.SetQuestion("www.example.org.", dns.TypeA) + m.SetEdns0(4096, true) + + r, err := dns.Exchange(m, udp) + if err != nil { + t.Fatalf("Could not exchange msg: %s", err) + } + if r.Rcode == dns.RcodeServerFailure { + t.Fatalf("Rcode should not be dns.RcodeServerFailure") + } + t.Logf("%s", r) +} |