Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 210581
b: refs/heads/master
c: 6f86b32
h: refs/heads/master
i:
  210579: e4c6bd0
v: v3
  • Loading branch information
David S. Miller committed Sep 7, 2010
1 parent f33d6ab commit ce3b187
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8df73ff90f00f14d2c7ff7156f7ef153f7e9d3b7
refs/heads/master: 6f86b325189e0a53c97bf86cff0c8b02ff624934
15 changes: 13 additions & 2 deletions trunk/net/ipv4/fib_frontend.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif,

struct fib_result res;
int no_addr, rpf, accept_local;
bool dev_match;
int ret;
struct net *net;

Expand Down Expand Up @@ -273,12 +274,22 @@ int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif,
}
*spec_dst = FIB_RES_PREFSRC(res);
fib_combine_itag(itag, &res);
dev_match = false;

#ifdef CONFIG_IP_ROUTE_MULTIPATH
if (FIB_RES_DEV(res) == dev || res.fi->fib_nhs > 1)
for (ret = 0; ret < res.fi->fib_nhs; ret++) {
struct fib_nh *nh = &res.fi->fib_nh[ret];

if (nh->nh_dev == dev) {
dev_match = true;
break;
}
}
#else
if (FIB_RES_DEV(res) == dev)
dev_match = true;
#endif
{
if (dev_match) {
ret = FIB_RES_NH(res).nh_scope >= RT_SCOPE_HOST;
fib_res_put(&res);
return ret;
Expand Down

0 comments on commit ce3b187

Please sign in to comment.