dect
/
libnl
Archived
13
0
Fork 0

add missing checks for ROUTE_ATTR_MULTIPATH

attached patch adds missing checks for ROUTE_ATTR_MULTIPATH
when dealing with multipath routing.

Affected functions

rtnl_route_remove_nexthop
rtnl_route_get_nexthops
rtnl_route_get_nnexthops
This commit is contained in:
Daniel Walter 2011-03-22 10:45:41 +01:00 committed by Thomas Graf
parent c1073d6172
commit f0603a467b
1 changed files with 12 additions and 4 deletions

View File

@ -687,18 +687,26 @@ void rtnl_route_add_nexthop(struct rtnl_route *route, struct rtnl_nexthop *nh)
void rtnl_route_remove_nexthop(struct rtnl_route *route, struct rtnl_nexthop *nh)
{
route->rt_nr_nh--;
nl_list_del(&nh->rtnh_list);
if (route->ce_mask & ROUTE_ATTR_MULTIPATH) {
route->rt_nr_nh--;
nl_list_del(&nh->rtnh_list);
}
}
struct nl_list_head *rtnl_route_get_nexthops(struct rtnl_route *route)
{
return &route->rt_nexthops;
if (route->ce_mask & ROUTE_ATTR_MULTIPATH)
return &route->rt_nexthops;
return NULL;
}
int rtnl_route_get_nnexthops(struct rtnl_route *route)
{
return route->rt_nr_nh;
if (route->ce_mask & ROUTE_ATTR_MULTIPATH)
return route->rt_nr_nh;
return 0;
}
void rtnl_route_foreach_nexthop(struct rtnl_route *r,