diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-08-28 22:00:09 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-08-28 22:00:09 +0000 |
commit | 1a1d77dd589de5a567fa95e36aa6999c704ceca4 (patch) | |
tree | 141e31f89f18b9fe0831f31852e0435ceaccafc5 /net/ipv6/udp.c | |
parent | fb9c690a18b3d66925a65b17441c37fa14d4370b (diff) |
Merge with 2.4.0-test7.
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index f9f0c0dc9..b4a00b171 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -7,7 +7,7 @@ * * Based on linux/ipv4/udp.c * - * $Id: udp.c,v 1.55 2000/07/08 00:20:43 davem Exp $ + * $Id: udp.c,v 1.56 2000/08/09 11:59:04 davem Exp $ * * Fixes: * Hideaki YOSHIFUJI : sin6_scope_id support @@ -109,7 +109,10 @@ gotit: (!sk2->rcv_saddr || addr_type == IPV6_ADDR_ANY || !ipv6_addr_cmp(&sk->net_pinfo.af_inet6.rcv_saddr, - &sk2->net_pinfo.af_inet6.rcv_saddr)) && + &sk2->net_pinfo.af_inet6.rcv_saddr) || + (addr_type == IPV6_ADDR_MAPPED && + sk2->family == AF_INET && + sk->rcv_saddr == sk2->rcv_saddr)) && (!sk2->reuse || !sk->reuse)) goto fail; } @@ -270,7 +273,6 @@ ipv4_connected: ipv6_addr_set(&np->saddr, 0, 0, __constant_htonl(0x0000ffff), sk->saddr); - } if(ipv6_addr_any(&np->rcv_saddr)) { @@ -343,7 +345,7 @@ ipv4_connected: if(ipv6_addr_any(&np->rcv_saddr)) { ipv6_addr_copy(&np->rcv_saddr, &saddr); - sk->rcv_saddr = 0xffffffff; + sk->rcv_saddr = LOOPBACK4_IPV6; } sk->state = TCP_ESTABLISHED; } @@ -923,8 +925,8 @@ static void get_udp6_sock(struct sock *sp, char *tmpbuf, int i) sp->state, atomic_read(&sp->wmem_alloc), atomic_read(&sp->rmem_alloc), sock_timer_active, timer_expires-jiffies, 0, - sp->socket->inode->i_uid, 0, - sp->socket ? sp->socket->inode->i_ino : 0, + sock_i_uid(sp), 0, + sock_i_ino(sp), atomic_read(&sp->refcnt), sp); } |