Mercurial > libavformat.hg
changeset 2689:7d25b8de708d libavformat
Take the target address family in account when determining the family of
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)
author | lucabe |
---|---|
date | Wed, 31 Oct 2007 07:27:38 +0000 |
parents | fffdcae6654c |
children | 0a8f2dc62d01 |
files | udp.c |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/udp.c Wed Oct 31 07:08:12 2007 +0000 +++ b/udp.c Wed Oct 31 07:27:38 2007 +0000 @@ -153,8 +153,11 @@ 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 @@ is_output = (flags & URL_WRONLY); - s = av_malloc(sizeof(UDPContext)); + s = av_mallocz(sizeof(UDPContext)); if (!s) return AVERROR(ENOMEM);