ip6_output.c (82ffd0454bd9bd57780966d47bfd56d579dd4fb3) | ip6_output.c (9036b2fe092a107856edd1a3bad48b83f2b45000) |
---|---|
1/* 2 * IPv6 output functions 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Based on linux/net/ipv4/ip_output.c --- 286 unchanged lines hidden (view full) --- 295 struct sock *last = NULL; 296 297 read_lock(&ip6_ra_lock); 298 for (ra = ip6_ra_chain; ra; ra = ra->next) { 299 struct sock *sk = ra->sk; 300 if (sk && ra->sel == sel && 301 (!sk->sk_bound_dev_if || 302 sk->sk_bound_dev_if == skb->dev->ifindex)) { | 1/* 2 * IPv6 output functions 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Based on linux/net/ipv4/ip_output.c --- 286 unchanged lines hidden (view full) --- 295 struct sock *last = NULL; 296 297 read_lock(&ip6_ra_lock); 298 for (ra = ip6_ra_chain; ra; ra = ra->next) { 299 struct sock *sk = ra->sk; 300 if (sk && ra->sel == sel && 301 (!sk->sk_bound_dev_if || 302 sk->sk_bound_dev_if == skb->dev->ifindex)) { |
303 struct ipv6_pinfo *np = inet6_sk(sk); 304 305 if (np && np->rtalert_isolate && 306 !net_eq(sock_net(sk), dev_net(skb->dev))) { 307 continue; 308 } |
|
303 if (last) { 304 struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); 305 if (skb2) 306 rawv6_rcv(last, skb2); 307 } 308 last = sk; 309 } 310 } --- 1506 unchanged lines hidden --- | 309 if (last) { 310 struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); 311 if (skb2) 312 rawv6_rcv(last, skb2); 313 } 314 last = sk; 315 } 316 } --- 1506 unchanged lines hidden --- |