}
if (old_nh) {
+ rtnl_route_nh_set_flags(old_nh, rtm->rtm_flags & 0xff);
if (route->rt_nr_nh == 0) {
/* If no nexthops have been provided via RTA_MULTIPATH
* we add it as regular nexthop to maintain backwards
if (route->rt_src)
rtmsg.rtm_src_len = nl_addr_get_prefixlen(route->rt_src);
-
if (rtmsg.rtm_scope == RT_SCOPE_NOWHERE)
rtmsg.rtm_scope = rtnl_route_guess_scope(route);
+ if (rtnl_route_get_nnexthops(route) == 1) {
+ struct rtnl_nexthop *nh;
+ nh = rtnl_route_nexthop_n(route, 0);
+ rtmsg.rtm_flags |= nh->rtnh_flags;
+ }
+
if (nlmsg_append(msg, &rtmsg, sizeof(rtmsg), NLMSG_ALIGNTO) < 0)
goto nla_put_failure;