[FFmpeg-devel] [PATCH] workaround for IOS9 getaddrinfo in IPv6 only network use hardcode IPv4 address can not resolve port number.

Dave Yeo daveryeo at telus.net
Sun Nov 6 09:22:04 EET 2016


On 08/24/16 03:46 AM, liu jc wrote:
> Signed-off-by: liujingchao <jcliu at outlook.com>
> ---
>   libavformat/tcp.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
>   mode change 100644 => 100755 libavformat/tcp.c
>
> diff --git a/libavformat/tcp.c b/libavformat/tcp.c
> old mode 100644
> new mode 100755
> index c105479..fd10a56
> --- a/libavformat/tcp.c
> +++ b/libavformat/tcp.c
> @@ -122,6 +122,14 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
>       cur_ai = ai;
>
>    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,
>                      cur_ai->ai_socktype,
>                      cur_ai->ai_protocol);
>

src/libavformat/tcp.c: In function 'tcp_open':
src/libavformat/tcp.c:128:25: error: dereferencing pointer to incomplete 
type
          if (!sockaddr_v6->sin6_port){
                          ^
src/libavformat/tcp.c:129:24: error: dereferencing pointer to incomplete 
type
              sockaddr_v6->sin6_port = htons(port);
                         ^
make: *** [libavformat/tcp.o] Error 1
make: *** Waiting for unfinished jobs....

Dave



More information about the ffmpeg-devel mailing list