openwrt_deco_e4r/target/linux/generic/patches-3.4/660-ipv6-loopback-policy-routing.patch

12 lines
315 B
Diff

--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -937,6 +937,8 @@ struct dst_entry * ip6_route_output(struct net *net, const struct sock *sk,
{
int flags = 0;
+ fl6->flowi6_iif = net->loopback_dev->ifindex;
+
if ((sk && sk->sk_bound_dev_if) || rt6_need_strict(&fl6->daddr))
flags |= RT6_LOOKUP_F_IFACE;