aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/libiproute/iproute.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
index bb0bfaed1..a19586c91 100644
--- a/networking/libiproute/iproute.c
+++ b/networking/libiproute/iproute.c
@@ -434,6 +434,18 @@ static int iproute_modify(int cmd, unsigned flags, int argc, char **argv)
434 } 434 }
435 addattr_l(&req.n, sizeof(req), RTA_METRICS, RTA_DATA(mxrta), RTA_PAYLOAD(mxrta)); 435 addattr_l(&req.n, sizeof(req), RTA_METRICS, RTA_DATA(mxrta), RTA_PAYLOAD(mxrta));
436 } 436 }
437 if (req.r.rtm_type == RTN_LOCAL || req.r.rtm_type == RTN_NAT)
438 req.r.rtm_scope = RT_SCOPE_HOST;
439 else if (req.r.rtm_type == RTN_BROADCAST ||
440 req.r.rtm_type == RTN_MULTICAST ||
441 req.r.rtm_type == RTN_ANYCAST)
442 req.r.rtm_scope = RT_SCOPE_LINK;
443 else if (req.r.rtm_type == RTN_UNICAST || req.r.rtm_type == RTN_UNSPEC) {
444 if (cmd == RTM_DELROUTE)
445 req.r.rtm_scope = RT_SCOPE_NOWHERE;
446 else if (!gw_ok)
447 req.r.rtm_scope = RT_SCOPE_LINK;
448 }
437 449
438 if (req.r.rtm_family == AF_UNSPEC) { 450 if (req.r.rtm_family == AF_UNSPEC) {
439 req.r.rtm_family = AF_INET; 451 req.r.rtm_family = AF_INET;