提交 d772167f 编写于 作者: M Matthias Bolte

tests: Improve IPv6 detection for virNetSocket tests

getifaddrs can return an IPv6 address, but getaddrinfo can fail
for an IPv6 address. Cover this combination.
上级 0b501bd4
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册