summaryrefslogtreecommitdiff
path: root/slirp/ip6.h
diff options
context:
space:
mode:
Diffstat (limited to 'slirp/ip6.h')
-rw-r--r--slirp/ip6.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/slirp/ip6.h b/slirp/ip6.h
index 731ee72d77..8ddfa242c4 100644
--- a/slirp/ip6.h
+++ b/slirp/ip6.h
@@ -72,7 +72,11 @@ static inline bool in6_equal_mach(const struct in6_addr *a,
|| (in6_equal_net(a, &(struct in6_addr)LINKLOCAL_ADDR, 64)\
&& in6_equal_mach(a, &slirp->vhost_addr6, 64)))
-#define in6_equal_dns(a) 0
+#define in6_equal_dns(a)\
+ ((in6_equal_net(a, &slirp->vprefix_addr6, slirp->vprefix_len)\
+ && in6_equal_mach(a, &slirp->vnameserver_addr6, slirp->vprefix_len))\
+ || (in6_equal_net(a, &(struct in6_addr)LINKLOCAL_ADDR, 64)\
+ && in6_equal_mach(a, &slirp->vnameserver_addr6, 64)))
#define in6_equal_host(a)\
(in6_equal_router(a) || in6_equal_dns(a))