Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
szolin committed May 29, 2020
1 parent 12cb2e1 commit 7491e75
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions dnsforward/dnsforward_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -627,6 +627,65 @@ func TestBlockedBySafeBrowsing(t *testing.T) {
}
}

func TestRewrite(t *testing.T) {
c := dnsfilter.Config{}
c.Rewrites = []dnsfilter.RewriteEntry{
dnsfilter.RewriteEntry{
Domain: "test.com",
Answer: "1.2.3.4",
Type: dns.TypeA,
},
dnsfilter.RewriteEntry{
Domain: "alias.test.com",
Answer: "test.com",
Type: dns.TypeCNAME,
},
dnsfilter.RewriteEntry{
Domain: "my.alias.example.org",
Answer: "example.org",
Type: dns.TypeCNAME,
},
}

f := dnsfilter.New(&c, nil)
s := NewServer(f, nil, nil)
conf := ServerConfig{}
conf.UDPListenAddr = &net.UDPAddr{Port: 0}
conf.TCPListenAddr = &net.TCPAddr{Port: 0}
conf.ProtectionEnabled = true
conf.UpstreamDNS = []string{"8.8.8.8:53"}

err := s.Prepare(&conf)
assert.Nil(t, err)
err = s.Start()
assert.Nil(t, err)
addr := s.dnsProxy.Addr(proxy.ProtoUDP)

req := createTestMessageWithType("test.com.", dns.TypeA)
reply, err := dns.Exchange(req, addr.String())
assert.Nil(t, err)
assert.Equal(t, 1, len(reply.Answer))
a, ok := reply.Answer[0].(*dns.A)
assert.True(t, ok)
assert.Equal(t, "1.2.3.4", a.A.String())

req = createTestMessageWithType("alias.test.com.", dns.TypeA)
reply, err = dns.Exchange(req, addr.String())
assert.Nil(t, err)
assert.Equal(t, 2, len(reply.Answer))
assert.Equal(t, "test.com.", reply.Answer[0].(*dns.CNAME).Target)
assert.Equal(t, "1.2.3.4", reply.Answer[1].(*dns.A).A.String())

req = createTestMessageWithType("my.alias.example.org.", dns.TypeA)
reply, err = dns.Exchange(req, addr.String())
assert.Nil(t, err)
assert.Equal(t, 2, len(reply.Answer))
assert.Equal(t, "example.org.", reply.Answer[0].(*dns.CNAME).Target)
assert.Equal(t, dns.TypeA, reply.Answer[1].Header().Rrtype)

_ = s.Stop()
}

func createTestServer(t *testing.T) *Server {
rules := `||nxdomain.example.org
||null.example.org^
Expand Down

0 comments on commit 7491e75

Please sign in to comment.