summaryrefslogtreecommitdiff
path: root/libavformat/udp.c
diff options
context:
space:
mode:
authorLuca Abeni <lucabe72@email.it>2007-11-15 13:34:56 +0000
committerLuca Abeni <lucabe72@email.it>2007-11-15 13:34:56 +0000
commit882d00f27d7318b7542dd41c360c491281638e2c (patch)
treed61997b6bab054fe46fc68beb68d63c470412465 /libavformat/udp.c
parenta0c013de34964a24871ed601e36f486c271aa149 (diff)
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
Diffstat (limited to 'libavformat/udp.c')
-rw-r--r--libavformat/udp.c11
1 files changed, 3 insertions, 8 deletions
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;