avformat/tcp: workaround for IOS9 getaddrinfo in IPv6 only network use hardcode IPv4 address can not resolve port number.

Signed-off-by: liujingchao <jcliu@outlook.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
liu jc 2016-08-24 10:46:41 +00:00 committed by Michael Niedermayer
parent 7746103227
commit c0f6eff6a7
1 changed files with 8 additions and 0 deletions

View File

@ -122,6 +122,14 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
cur_ai = ai; cur_ai = ai;
restart: restart:
// workaround for IOS9 getaddrinfo in IPv6 only network use hardcode IPv4 address can not resolve port number.
if (cur_ai->ai_family == AF_INET6){
struct sockaddr_in6 * sockaddr_v6 = (struct sockaddr_in6 *)cur_ai->ai_addr;
if (!sockaddr_v6->sin6_port){
sockaddr_v6->sin6_port = htons(port);
}
}
fd = ff_socket(cur_ai->ai_family, fd = ff_socket(cur_ai->ai_family,
cur_ai->ai_socktype, cur_ai->ai_socktype,
cur_ai->ai_protocol); cur_ai->ai_protocol);