dns

DNS client and server implementations using the Go project's dnsmessage package
Log | Files | Refs | README | LICENSE

commit 2cf560f78905b6f035e5eb06dfeae712d2346370
parent 769cb642185672c6028e5169628823cbdffcf718
Author: Oliver Lowe <o@olowe.co>
Date:   Sat, 18 Dec 2021 18:22:10 +1100

cmd/recursor: test resolving a wrongly delegated domain

Diffstat:
Mcmd/recursor/recursor_test.go | 27+++++++++++++++++++++++++++
1 file changed, 27 insertions(+), 0 deletions(-)

diff --git a/cmd/recursor/recursor_test.go b/cmd/recursor/recursor_test.go @@ -117,3 +117,30 @@ func TestNXDomain(t *testing.T) { } t.Logf("wanted: %+v got %+v", wanted, got) } + +func TestRefused(t *testing.T) { + var wanted, got dnsmessage.Message + var err error + wanted, err = dns.Exchange(tquery, quad9) + if err != nil { + fmt.Fprintf(os.Stderr, "skipping %s: %v\n", t.Name(), err) + t.Skip("query internet DNS:", err) + } + q := tquery + q.Questions[0].Name = dnsmessage.MustNewName("kjyq.com.") + wanted, err = dns.Exchange(q, "8.8.4.4:domain") + if err != nil { + t.Fatal(err) + } + // try twice: first for fresh response, second for cached response + for i := 0; i <= 1; i++ { + got, err = dns.Exchange(q, testAddr) + if err != nil { + t.Fatal(err) + } + if wanted.Header != got.Header { + t.Error("mismatched headers") + } + } + t.Logf("wanted: %+v got %+v", wanted, got) +}