diff --git a/tests/virnetsockettest.c b/tests/virnetsockettest.c index f686a15c50..f6c72743c6 100644 --- a/tests/virnetsockettest.c +++ b/tests/virnetsockettest.c @@ -45,12 +45,16 @@ checkProtocols(bool *hasIPv4, bool *hasIPv6, int *freePort) { struct ifaddrs *ifaddr = NULL, *ifa; + struct addrinfo hints; + struct addrinfo *ai = NULL; struct sockaddr_in in4; struct sockaddr_in6 in6; int s4 = -1, s6 = -1; int i; int ret = -1; + memset(&hints, 0, sizeof hints); + *hasIPv4 = *hasIPv6 = false; *freePort = 0; @@ -67,6 +71,15 @@ checkProtocols(bool *hasIPv4, bool *hasIPv6, *hasIPv6 = true; } + hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG; + hints.ai_family = AF_INET6; + hints.ai_socktype = SOCK_STREAM; + + if (getaddrinfo("::1", "5672", &hints, &ai) != 0) + *hasIPv6 = false; + + freeaddrinfo(ai); + VIR_DEBUG("Protocols: v4 %d v6 %d\n", *hasIPv4, *hasIPv6); freeifaddrs(ifaddr);