summaryrefslogtreecommitdiff
path: root/slirp/slirp.c
diff options
context:
space:
mode:
authorGuillaume Subiron <maethor@subiron.org>2016-03-15 10:31:22 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2016-03-15 10:35:22 +0100
commit05061d8548598c92bda94de0c6159732e75da719 (patch)
treef9d78daeea7d03a31ef4bb0ff7fdb1f8494bade1 /slirp/slirp.c
parent3feea4447f1b9b04816ee6977b5ecc0eb704e07a (diff)
downloadqemu-05061d8548598c92bda94de0c6159732e75da719.tar.gz
slirp: Adding IPv6 address for DNS relay
This patch adds an IPv6 address to the DNS relay. in6_equal_dns() is developed using this Slirp attribute. sotranslate_in/out/accept() are also updated to manage the IPv6 case so the guest can be able to join the host using one of the Slirp addresses. For now this only points to localhost. Further development will be needed to automatically fetch the IPv6 address from resolv.conf, and announce this via RDNSS. Signed-off-by: Guillaume Subiron <maethor@subiron.org> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Reviewed-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'slirp/slirp.c')
-rw-r--r--slirp/slirp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/slirp/slirp.c b/slirp/slirp.c
index 50b36f4126..7a47bb60a9 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -231,10 +231,13 @@ Slirp *slirp_init(int restricted, struct in_addr vnetwork,
slirp->vprefix_len = 64;
slirp->vhost_addr6 = slirp->vprefix_addr6;
slirp->vhost_addr6.s6_addr[15] = 0x2;
+ slirp->vnameserver_addr6 = slirp->vprefix_addr6;
+ slirp->vnameserver_addr6.s6_addr[15] = 0x3;
#else
inet_pton(AF_INET6, "fec0::0", &slirp->vprefix_addr6);
slirp->vprefix_len = 64;
inet_pton(AF_INET6, "fec0::2", &slirp->vhost_addr6);
+ inet_pton(AF_INET6, "fec0::3", &slirp->vnameserver_addr6);
#endif
if (vhostname) {
pstrcpy(slirp->client_hostname, sizeof(slirp->client_hostname),