From 7d8aa3704c26a261adf28197c9ba84fd88895552 Mon Sep 17 00:00:00 2001 From: YOSHIFUJI Hideaki Date: Mon, 6 Nov 2006 09:45:45 -0800 Subject: [PATCH] --- yaml --- r: 41033 b: refs/heads/master c: ea659e0775281e1c02556e939bf749bb4f55e50c h: refs/heads/master i: 41031: 6044b6e008a45a29da35954fb18861292a06f941 v: v3 --- [refs] | 2 +- trunk/net/ipv6/route.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index db264e741087..3124948b1fbb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 557e92efd44878beccd08d5dd54ed343be0e5819 +refs/heads/master: ea659e0775281e1c02556e939bf749bb4f55e50c diff --git a/trunk/net/ipv6/route.c b/trunk/net/ipv6/route.c index a972a6641ed5..b39ae99122d5 100644 --- a/trunk/net/ipv6/route.c +++ b/trunk/net/ipv6/route.c @@ -380,10 +380,11 @@ static struct rt6_info *rt6_select(struct rt6_info **head, int oif, continue; if (m > mpri) { - rt6_probe(match); + if (strict & RT6_LOOKUP_F_REACHABLE) + rt6_probe(match); match = rt; mpri = m; - } else { + } else if (strict & RT6_LOOKUP_F_REACHABLE) { rt6_probe(rt); } } @@ -636,7 +637,7 @@ static struct rt6_info *ip6_pol_route_input(struct fib6_table *table, int strict = 0; int attempts = 3; int err; - int reachable = RT6_LOOKUP_F_REACHABLE; + int reachable = ipv6_devconf.forwarding ? 0 : RT6_LOOKUP_F_REACHABLE; strict |= flags & RT6_LOOKUP_F_IFACE; @@ -733,7 +734,7 @@ static struct rt6_info *ip6_pol_route_output(struct fib6_table *table, int strict = 0; int attempts = 3; int err; - int reachable = RT6_LOOKUP_F_REACHABLE; + int reachable = ipv6_devconf.forwarding ? 0 : RT6_LOOKUP_F_REACHABLE; strict |= flags & RT6_LOOKUP_F_IFACE;