mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 18:53:43 -04:00
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
This commit is contained in:
committed by
Chris O'Haver
parent
49891d2103
commit
0f74281a53
60
test/file_upstream_test.go
Normal file
60
test/file_upstream_test.go
Normal file
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user