obs-outputs: Prefer IPv4 addresses for RTMP connections

上级 34590b4b
......@@ -695,10 +695,10 @@ add_addr_info(struct sockaddr_storage *service, socklen_t *addrlen, AVal *host,
goto finish;
}
// they should come back in OS preferred order
// prefer ipv4 results, since lots of ISPs have broken ipv6 connectivity
for (ptr = result; ptr != NULL; ptr = ptr->ai_next)
{
if (ptr->ai_family == AF_INET || ptr->ai_family == AF_INET6)
if (ptr->ai_family == AF_INET)
{
memcpy(service, ptr->ai_addr, ptr->ai_addrlen);
*addrlen = (socklen_t)ptr->ai_addrlen;
......@@ -706,6 +706,19 @@ add_addr_info(struct sockaddr_storage *service, socklen_t *addrlen, AVal *host,
}
}
if (!*addrlen)
{
for (ptr = result; ptr != NULL; ptr = ptr->ai_next)
{
if (ptr->ai_family == AF_INET6)
{
memcpy(service, ptr->ai_addr, ptr->ai_addrlen);
*addrlen = (socklen_t)ptr->ai_addrlen;
break;
}
}
}
freeaddrinfo(result);
if (service->ss_family == AF_UNSPEC || *addrlen == 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册