ip6_output.c (e4340bbb07dd38339c0773543dd928886e512a57) | ip6_output.c (1e0d69a9cc9172d7896c2113f983a74f6e8ff303) |
---|---|
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 --- 863 unchanged lines hidden (view full) --- 872 * so that the last trick works only on connected 873 * sockets. 874 * 2. oif also should be the same. 875 */ 876 if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || 877#ifdef CONFIG_IPV6_SUBTREES 878 ip6_rt_check(&rt->rt6i_src, &fl6->saddr, np->saddr_cache) || 879#endif | 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 --- 863 unchanged lines hidden (view full) --- 872 * so that the last trick works only on connected 873 * sockets. 874 * 2. oif also should be the same. 875 */ 876 if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || 877#ifdef CONFIG_IPV6_SUBTREES 878 ip6_rt_check(&rt->rt6i_src, &fl6->saddr, np->saddr_cache) || 879#endif |
880 (fl6->flowi6_oif && fl6->flowi6_oif != dst->dev->ifindex)) { | 880 (!(fl6->flowi6_flags & FLOWI_FLAG_SKIP_NH_OIF) && 881 (fl6->flowi6_oif && fl6->flowi6_oif != dst->dev->ifindex))) { |
881 dst_release(dst); 882 dst = NULL; 883 } 884 885out: 886 return dst; 887} 888 --- 887 unchanged lines hidden --- | 882 dst_release(dst); 883 dst = NULL; 884 } 885 886out: 887 return dst; 888} 889 --- 887 unchanged lines hidden --- |