Mercurial > libavformat.hg
changeset 2750:b3a11a0966af libavformat
Use the same code to set local_port in the IPv4-only case and in the
protocol-independet case
author | lucabe |
---|---|
date | Thu, 15 Nov 2007 13:34:56 +0000 |
parents | 2a6baeedf776 |
children | d174591c742b |
files | udp.c |
diffstat | 1 files changed, 3 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/udp.c Thu Nov 15 11:45:07 2007 +0000 +++ b/udp.c Thu Nov 15 13:34:56 2007 +0000 @@ -339,6 +339,8 @@ if(!ff_network_init()) return AVERROR(EIO); + if (s->is_multicast && !(h->flags & URL_WRONLY)) + s->local_port = port; #ifndef CONFIG_IPV6 udp_fd = socket(AF_INET, SOCK_DGRAM, 0); if (udp_fd < 0) @@ -346,12 +348,7 @@ my_addr.sin_family = AF_INET; my_addr.sin_addr.s_addr = htonl (INADDR_ANY); - if (s->is_multicast && !(h->flags & URL_WRONLY)) { - /* special case: the bind must be done on the multicast address port */ - my_addr.sin_port = s->dest_addr.sin_port; - } else { - my_addr.sin_port = htons(s->local_port); - } + my_addr.sin_port = htons(s->local_port); if (s->reuse_socket) if (setsockopt (udp_fd, SOL_SOCKET, SO_REUSEADDR, &(s->reuse_socket), sizeof(s->reuse_socket)) != 0) @@ -365,8 +362,6 @@ getsockname(udp_fd, (struct sockaddr *)&my_addr1, &len); s->local_port = ntohs(my_addr1.sin_port); #else - if (s->is_multicast && !(h->flags & URL_WRONLY)) - s->local_port = port; udp_fd = udp_ipv6_set_local(h); if (udp_fd < 0) goto fail;