]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Take the target address family in account when determining the family of
authorlucabe <lucabe@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 31 Oct 2007 07:27:38 +0000 (07:27 +0000)
committerlucabe <lucabe@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 31 Oct 2007 07:27:38 +0000 (07:27 +0000)
the local address to bind.
Fixes ffserver and UDP streaming without --disable-ipv6 on MacOS X

Patch by Ronald S. Bultje (rsbultje st gmail dot com)

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@10883 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/udp.c

index b33224aff62c748d75a7f6c7850e522bfdebc5be..c52d3062edb310ded5fe0c231f9b95710c4c1d8d 100644 (file)
@@ -153,8 +153,11 @@ static int udp_ipv6_set_local(URLContext *h) {
     char sbuf[NI_MAXSERV];
     char hbuf[NI_MAXHOST];
     struct addrinfo *res0 = NULL, *res = NULL;
+    int family = AF_UNSPEC;
 
-    res0 = udp_ipv6_resolve_host(0, s->local_port, SOCK_DGRAM, AF_UNSPEC, AI_PASSIVE);
+    if (((struct sockaddr *) &s->dest_addr)->sa_family)
+        family = ((struct sockaddr *) &s->dest_addr)->sa_family;
+    res0 = udp_ipv6_resolve_host(0, s->local_port, SOCK_DGRAM, family, AI_PASSIVE);
     if (res0 == 0)
         goto fail;
     for (res = res0; res; res=res->ai_next) {
@@ -277,7 +280,7 @@ static int udp_open(URLContext *h, const char *uri, int flags)
 
     is_output = (flags & URL_WRONLY);
 
-    s = av_malloc(sizeof(UDPContext));
+    s = av_mallocz(sizeof(UDPContext));
     if (!s)
         return AVERROR(ENOMEM);