aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2010-05-25 17:42:01 +0200
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2010-05-25 18:48:33 +0200
commitcc4493a95c877354ee267e29629b72cd9d010262 (patch)
tree955d7669b5e9128c768a27ec8f4d29695f4528de
parent1b3549875cf8beb236a17a456fc0cab66bfd1d72 (diff)
downloadbusybox-w32-cc4493a95c877354ee267e29629b72cd9d010262.tar.gz
busybox-w32-cc4493a95c877354ee267e29629b72cd9d010262.tar.bz2
busybox-w32-cc4493a95c877354ee267e29629b72cd9d010262.zip
ip addr: unify parsing args
function old new delta do_ipaddr 87 84 -3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-3) Total: -3 bytes Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r--networking/libiproute/ipaddress.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c
index 3f360f455..8a5edb968 100644
--- a/networking/libiproute/ipaddress.c
+++ b/networking/libiproute/ipaddress.c
@@ -773,21 +773,15 @@ int do_ipaddr(char **argv)
773{ 773{
774 static const char commands[] ALIGN1 = 774 static const char commands[] ALIGN1 =
775 "add\0""delete\0""list\0""show\0""lst\0""flush\0"; 775 "add\0""delete\0""list\0""show\0""lst\0""flush\0";
776 776 smalluint cmd = 2;
777 int command_num = 2; /* default command is list */
778
779 if (*argv) { 777 if (*argv) {
780 command_num = index_in_substrings(commands, *argv); 778 cmd = index_in_substrings(commands, *argv);
781 if (command_num < 0 || command_num > 5) 779 if (cmd > 5)
782 bb_error_msg_and_die("unknown command %s", *argv); 780 bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
783 argv++; 781 argv++;
782 if (cmd <= 1)
783 return ipaddr_modify((cmd == 0) ? RTM_NEWADDR : RTM_DELADDR, argv);
784 } 784 }
785 if (command_num == 0) /* add */
786 return ipaddr_modify(RTM_NEWADDR, argv);
787 if (command_num == 1) /* delete */
788 return ipaddr_modify(RTM_DELADDR, argv);
789 if (command_num == 5) /* flush */
790 return ipaddr_list_or_flush(argv, 1);
791 /* 2 == list, 3 == show, 4 == lst */ 785 /* 2 == list, 3 == show, 4 == lst */
792 return ipaddr_list_or_flush(argv, 0); 786 return ipaddr_list_or_flush(argv, cmd == 5);
793} 787}