From: Bernhard Reutner-Fischer Date: Tue, 7 Oct 2008 17:00:58 +0000 (-0000) Subject: - route metric support (Natanael Copa) X-Git-Tag: 1_13_0~131 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=578de8644c46cd17667812f7e335bf9fefbca00d;p=oweals%2Fbusybox.git - route metric support (Natanael Copa) Adds about 75b --- diff --git a/include/usage.h b/include/usage.h index fa7ac3bf7..8f6013ede 100644 --- a/include/usage.h +++ b/include/usage.h @@ -1992,7 +1992,8 @@ " [oif STRING] [tos TOS]\n" \ "iproute { add | del | change | append | replace | monitor } ROUTE\n" \ " SELECTOR := [root PREFIX] [match PREFIX] [proto RTPROTO]\n" \ - " ROUTE := [TYPE] PREFIX [tos TOS] [proto RTPROTO]" \ + " ROUTE := [TYPE] PREFIX [tos TOS] [proto RTPROTO]\n" \ + " [metric METRIC]" \ #define iprule_trivial_usage \ "{[list | add | del] RULE}" diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c index bdccad69d..a7ec66c7f 100644 --- a/networking/libiproute/iproute.c +++ b/networking/libiproute/iproute.c @@ -291,7 +291,7 @@ static int iproute_modify(int cmd, unsigned flags, char **argv) { static const char keywords[] ALIGN1 = "src\0""via\0""mtu\0""lock\0""protocol\0"USE_FEATURE_IP_RULE("table\0") - "dev\0""oif\0""to\0"; + "dev\0""oif\0""to\0""metric\0"; enum { ARG_src, ARG_via, @@ -300,7 +300,8 @@ static int iproute_modify(int cmd, unsigned flags, char **argv) USE_FEATURE_IP_RULE(ARG_table,) ARG_dev, ARG_oif, - ARG_to + ARG_to, + ARG_metric, }; enum { gw_ok = 1 << 0, @@ -387,6 +388,12 @@ USE_FEATURE_IP_RULE(ARG_table,) } else if (arg == ARG_dev || arg == ARG_oif) { NEXT_ARG(); d = *argv; + } else if (arg == ARG_metric) { + uint32_t metric; + NEXT_ARG(); + if (get_u32(&metric, *argv, 0)) + invarg(*argv, "metric"); + addattr32(&req.n, sizeof(req), RTA_PRIORITY, metric); } else { int type; inet_prefix dst;