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 | } |