From 786c1614fba7432122eb28a05b7ac101c83f42e6 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 6 Jul 2017 13:43:20 +0200 Subject: [PATCH] Prefer NAT64 address when choosing the STUN server IP address on IPv6 only network. --- coreapi/misc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/coreapi/misc.c b/coreapi/misc.c index 8192f002d..20380aef9 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -577,8 +577,12 @@ static const struct addrinfo * get_preferred_stun_server_addrinfo(const struct a else if (ai->ai_family == AF_INET6) { struct sockaddr_storage ss; socklen_t sslen = sizeof(ss); - bctbx_sockaddr_ipv6_to_ipv4(ai->ai_addr, (struct sockaddr *)&ss, &sslen); - if ((ss.ss_family == AF_INET) && (preferred_ai == NULL)) preferred_ai = ai; + bctbx_sockaddr_remove_nat64_mapping(ai->ai_addr, (struct sockaddr *)&ss, &sslen); + if (ss.ss_family == AF_INET) { + preferred_ai = ai; + break; + } + preferred_ai = ai; } ai = ai->ai_next; }