diff options
| author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2010-05-25 17:22:17 +0200 |
|---|---|---|
| committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2010-05-25 18:48:33 +0200 |
| commit | 1b3549875cf8beb236a17a456fc0cab66bfd1d72 (patch) | |
| tree | 17d1bf545bec45a686014a22d02dbfe97bda4347 | |
| parent | 96913f9254d288d61d893015f92e9f75b13f5d2a (diff) | |
| download | busybox-w32-1b3549875cf8beb236a17a456fc0cab66bfd1d72.tar.gz busybox-w32-1b3549875cf8beb236a17a456fc0cab66bfd1d72.tar.bz2 busybox-w32-1b3549875cf8beb236a17a456fc0cab66bfd1d72.zip | |
ip rule: unify parsing args
function old new delta
do_iprule 83 134 +51
print_rule 736 726 -10
iprule_list 73 - -73
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 51/-83) Total: -32 bytes
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
| -rw-r--r-- | networking/libiproute/iprule.c | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/networking/libiproute/iprule.c b/networking/libiproute/iprule.c index 535019d87..835529ec4 100644 --- a/networking/libiproute/iprule.c +++ b/networking/libiproute/iprule.c | |||
| @@ -69,11 +69,9 @@ static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM, | |||
| 69 | else if (r->rtm_family == AF_IPX) | 69 | else if (r->rtm_family == AF_IPX) |
| 70 | host_len = 80; | 70 | host_len = 80; |
| 71 | */ | 71 | */ |
| 72 | if (tb[RTA_PRIORITY]) | 72 | printf("%u:\t", tb[RTA_PRIORITY] ? |
| 73 | printf("%u:\t", *(unsigned*)RTA_DATA(tb[RTA_PRIORITY])); | 73 | *(unsigned*)RTA_DATA(tb[RTA_PRIORITY]) |
| 74 | else | 74 | : 0); |
| 75 | printf("0:\t"); | ||
| 76 | |||
| 77 | printf("from "); | 75 | printf("from "); |
| 78 | if (tb[RTA_SRC]) { | 76 | if (tb[RTA_SRC]) { |
| 79 | if (r->rtm_src_len != host_len) { | 77 | if (r->rtm_src_len != host_len) { |
| @@ -310,25 +308,13 @@ int do_iprule(char **argv) | |||
| 310 | { | 308 | { |
| 311 | static const char ip_rule_commands[] ALIGN1 = | 309 | static const char ip_rule_commands[] ALIGN1 = |
| 312 | "add\0""delete\0""list\0""show\0"; | 310 | "add\0""delete\0""list\0""show\0"; |
| 313 | int cmd = 2; /* list */ | 311 | if (*argv) { |
| 314 | 312 | smalluint cmd = index_in_substrings(ip_rule_commands, *argv); | |
| 315 | if (!*argv) | 313 | if (cmd > 3) |
| 316 | return iprule_list(argv); | 314 | bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name); |
| 317 | 315 | argv++; | |
| 318 | cmd = index_in_substrings(ip_rule_commands, *argv); | 316 | if (cmd < 2) |
| 319 | switch (cmd) { | 317 | return iprule_modify((cmd == 0) ? RTM_NEWRULE : RTM_DELRULE, argv); |
| 320 | case 0: /* add */ | ||
| 321 | cmd = RTM_NEWRULE; | ||
| 322 | break; | ||
| 323 | case 1: /* delete */ | ||
| 324 | cmd = RTM_DELRULE; | ||
| 325 | break; | ||
| 326 | case 2: /* list */ | ||
| 327 | case 3: /* show */ | ||
| 328 | return iprule_list(argv+1); | ||
| 329 | break; | ||
| 330 | default: | ||
| 331 | bb_error_msg_and_die("unknown command %s", *argv); | ||
| 332 | } | 318 | } |
| 333 | return iprule_modify(cmd, argv+1); | 319 | return iprule_list(argv); |
| 334 | } | 320 | } |
