diff --git a/nameserver/nameserver.go b/nameserver/nameserver.go index 20331a7f..b3de9c3f 100644 --- a/nameserver/nameserver.go +++ b/nameserver/nameserver.go @@ -121,7 +121,7 @@ func (n *Nameserver) ReverseLookup(ip address.Address) (string, error) { defer n.RUnlock() match, err := n.entries.first(func(e *Entry) bool { - return e.Addr == ip + return e.Tombstone == 0 && e.Addr == ip }) if err != nil { return "", err diff --git a/test/265_dns_reverse_test.sh b/test/265_dns_reverse_test.sh new file mode 100755 index 00000000..5a9e94fe --- /dev/null +++ b/test/265_dns_reverse_test.sh @@ -0,0 +1,18 @@ +#! /bin/bash + +. ./config.sh + +IP=10.2.0.67 + +start_suite "Reverse DNS test" + +weave_on $HOST1 launch +start_container_with_dns $HOST1 --name=c1 + +for name in bar bar black sheep have you any wool; do + start_container $HOST1 $IP/24 --name=$name + assert "exec_on $HOST1 c1 dig +short -x $IP" $name.weave.local. + rm_containers $HOST1 $name +done + +end_suite