From 882d00f27d7318b7542dd41c360c491281638e2c Mon Sep 17 00:00:00 2001 From: Luca Abeni Date: Thu, 15 Nov 2007 13:34:56 +0000 Subject: Use the same code to set local_port in the IPv4-only case and in the protocol-independet case Originally committed as revision 11036 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/udp.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'libavformat/udp.c') diff --git a/libavformat/udp.c b/libavformat/udp.c index 7d2529bcfe..71dd5bf069 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -339,6 +339,8 @@ static int udp_open(URLContext *h, const char *uri, int flags) 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 @@ static int udp_open(URLContext *h, const char *uri, int flags) 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 @@ static int udp_open(URLContext *h, const char *uri, int flags) 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; -- cgit v1.2.3