# HG changeset patch # User lucabe # Date 1195133696 0 # Node ID b3a11a0966af7788e5d32130256e255f4ce71853 # Parent 2a6baeedf776bfc6cf7e69ed003afc7d6ebae3b5 Use the same code to set local_port in the IPv4-only case and in the protocol-independet case diff -r 2a6baeedf776 -r b3a11a0966af udp.c --- 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;