0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00

obs-outputs: Prefer IPv4 addresses for RTMP connections

This commit is contained in:
Richard Stanway 2016-08-15 17:55:07 +02:00
parent 34590b4b6a
commit eca0ca8424
No known key found for this signature in database
GPG Key ID: AAC1E5265D71B3FD

View File

@ -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)