mirror of https://github.com/status-im/consul.git
Added tests for lookups on the 'addr.consul' domain
This commit is contained in:
parent
84c87325ae
commit
63534aca7e
|
@ -359,7 +359,7 @@ PARSE:
|
|||
d.preparedQueryLookup(network, datacenter, query, req, resp)
|
||||
|
||||
case "addr":
|
||||
if n < 2 {
|
||||
if n != 2 {
|
||||
goto INVALID
|
||||
}
|
||||
|
||||
|
|
|
@ -1062,7 +1062,7 @@ func TestDNS_ServiceLookup_ServiceAddress(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestDNS_ServiceLookup_ServiceAddressIPv6(t *testing.T) {
|
||||
func TestDNS_ServiceLookup_ServiceAddressIPV6(t *testing.T) {
|
||||
dir, srv := makeDNSServer(t)
|
||||
defer os.RemoveAll(dir)
|
||||
defer srv.agent.Shutdown()
|
||||
|
@ -3493,6 +3493,85 @@ func TestDNS_ServiceLookup_FilterACL(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestDNS_AddressLookup(t *testing.T) {
|
||||
dir, srv := makeDNSServer(t)
|
||||
defer os.RemoveAll(dir)
|
||||
defer srv.agent.Shutdown()
|
||||
|
||||
testutil.WaitForLeader(t, srv.agent.RPC, "dc1")
|
||||
|
||||
// Look up the addresses
|
||||
cases := map[string]string{
|
||||
"7f000001.addr.dc1.consul.": "127.0.0.1",
|
||||
}
|
||||
for question, answer := range cases {
|
||||
m := new(dns.Msg)
|
||||
m.SetQuestion(question, dns.TypeSRV)
|
||||
|
||||
c := new(dns.Client)
|
||||
addr, _ := srv.agent.config.ClientListener("", srv.agent.config.Ports.DNS)
|
||||
in, _, err := c.Exchange(m, addr.String())
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
|
||||
if len(in.Answer) != 1 {
|
||||
t.Fatalf("Bad: %#v", in)
|
||||
}
|
||||
|
||||
aRec, ok := in.Answer[0].(*dns.A)
|
||||
if !ok {
|
||||
t.Fatalf("Bad: %#v", in.Answer[0])
|
||||
}
|
||||
if aRec.A.To4().String() != answer {
|
||||
t.Fatalf("Bad: %#v", aRec)
|
||||
}
|
||||
if aRec.Hdr.Ttl != 0 {
|
||||
t.Fatalf("Bad: %#v", in.Answer[0])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestDNS_AddressLookupIPV6(t *testing.T) {
|
||||
dir, srv := makeDNSServer(t)
|
||||
defer os.RemoveAll(dir)
|
||||
defer srv.agent.Shutdown()
|
||||
|
||||
testutil.WaitForLeader(t, srv.agent.RPC, "dc1")
|
||||
|
||||
// Look up the addresses
|
||||
cases := map[string]string{
|
||||
"2607002040050808000000000000200e.addr.consul.": "2607:20:4005:808::200e",
|
||||
"2607112040051808ffffffffffff200e.addr.consul.": "2607:1120:4005:1808:ffff:ffff:ffff:200e",
|
||||
}
|
||||
for question, answer := range cases {
|
||||
m := new(dns.Msg)
|
||||
m.SetQuestion(question, dns.TypeSRV)
|
||||
|
||||
c := new(dns.Client)
|
||||
addr, _ := srv.agent.config.ClientListener("", srv.agent.config.Ports.DNS)
|
||||
in, _, err := c.Exchange(m, addr.String())
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
|
||||
if len(in.Answer) != 1 {
|
||||
t.Fatalf("Bad: %#v", in)
|
||||
}
|
||||
|
||||
aaaaRec, ok := in.Answer[0].(*dns.AAAA)
|
||||
if !ok {
|
||||
t.Fatalf("Bad: %#v", in.Answer[0])
|
||||
}
|
||||
if aaaaRec.AAAA.To16().String() != answer {
|
||||
t.Fatalf("Bad: %#v", aaaaRec)
|
||||
}
|
||||
if aaaaRec.Hdr.Ttl != 0 {
|
||||
t.Fatalf("Bad: %#v", in.Answer[0])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestDNS_NonExistingLookup(t *testing.T) {
|
||||
dir, srv := makeDNSServer(t)
|
||||
defer os.RemoveAll(dir)
|
||||
|
|
Loading…
Reference in New Issue