route: rtnl_route_build_msg() should not overwrite the route scope
rtnl_route_build_msg() should allow the user to set the route scope explicitly to RT_SCOPE_NOWHERE. This is useful for IPv4 routes, because when deleting a route, the kernel requires the scope to match, unless the scope is set to RT_SCOPE_NOWHERE. Thus by setting the scope to RT_SCOPE_NOWHERE, the user can delete a route, even without knowing its scope. rtnl_route_build_msg() should only try to guess the scope, if it was not explicitly specified. Signed-off-by: Thomas Haller <thaller@redhat.com> Acked-by: Thomas Graf <tgraf@suug.ch>
This commit is contained in:
parent
3fb0aae0bc
commit
85ec9c7ad8
1 changed files with 1 additions and 1 deletions
|
@ -1198,7 +1198,7 @@ int rtnl_route_build_msg(struct nl_msg *msg, struct rtnl_route *route)
|
|||
if (route->rt_src)
|
||||
rtmsg.rtm_src_len = nl_addr_get_prefixlen(route->rt_src);
|
||||
|
||||
if (rtmsg.rtm_scope == RT_SCOPE_NOWHERE)
|
||||
if (!(route->ce_mask & ROUTE_ATTR_SCOPE))
|
||||
rtmsg.rtm_scope = rtnl_route_guess_scope(route);
|
||||
|
||||
if (rtnl_route_get_nnexthops(route) == 1) {
|
||||
|
|
Loading…
Add table
Reference in a new issue