summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2008-06-25 16:58:17 +0900
committerYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2008-07-03 17:51:55 +0900
commit5ce83afaac956238c3c25f60a899c511e9d8cbf4 (patch)
tree9ea7885739cc73f0a015ee12df705770c278f123
parentf81b2e7d8cf8c6a52b7a5224c3b89cee5aeb6811 (diff)
downloadlinux-5ce83afaac956238c3c25f60a899c511e9d8cbf4.tar.gz
linux-5ce83afaac956238c3c25f60a899c511e9d8cbf4.tar.bz2
linux-5ce83afaac956238c3c25f60a899c511e9d8cbf4.zip
ipv6: Assume the loopback address in link-local scope.
Handle interface property strictly when looking up a route for the loopback address (RFC4291 2.5.3). Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
-rw-r--r--net/ipv6/route.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 751e98f9b8b4..dbad96c58baa 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -228,7 +228,7 @@ static __inline__ int rt6_check_expired(const struct rt6_info *rt)
static inline int rt6_need_strict(struct in6_addr *daddr)
{
return (ipv6_addr_type(daddr) &
- (IPV6_ADDR_MULTICAST | IPV6_ADDR_LINKLOCAL));
+ (IPV6_ADDR_MULTICAST | IPV6_ADDR_LINKLOCAL | IPV6_ADDR_LOOPBACK));
}
/*