]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv6/udp.c
module: neaten __find_symbol, rename to find_symbol
[linux-2.6-omap-h63xx.git] / net / ipv6 / udp.c
index 30ef7dc5d403fe7080fd06e7f8ec2a81fc2e8e94..1fd784f3e2ecf4dba2f48dd6ff134172b80df0d5 100644 (file)
@@ -752,7 +752,10 @@ do_udp_sendmsg:
        opt = ipv6_fixup_options(&opt_space, opt);
 
        fl.proto = sk->sk_protocol;
-       ipv6_addr_copy(&fl.fl6_dst, daddr);
+       if (!ipv6_addr_any(daddr))
+               ipv6_addr_copy(&fl.fl6_dst, daddr);
+       else
+               fl.fl6_dst.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */
        if (ipv6_addr_any(&fl.fl6_src) && !ipv6_addr_any(&np->saddr))
                ipv6_addr_copy(&fl.fl6_src, &np->saddr);
        fl.fl_ip_sport = inet->sport;