diff options
author | Luca Abeni <lucabe72@email.it> | 2007-11-15 13:34:56 +0000 |
---|---|---|
committer | Luca Abeni <lucabe72@email.it> | 2007-11-15 13:34:56 +0000 |
commit | 882d00f27d7318b7542dd41c360c491281638e2c (patch) | |
tree | d61997b6bab054fe46fc68beb68d63c470412465 /libavformat/udp.c | |
parent | a0c013de34964a24871ed601e36f486c271aa149 (diff) | |
download | ffmpeg-882d00f27d7318b7542dd41c360c491281638e2c.tar.gz |
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.c | 11 |
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; |