mirror of
https://github.com/sheumann/hush.git
synced 2024-12-27 01:32:08 +00:00
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>
This commit is contained in:
parent
1b3549875c
commit
cc4493a95c
@ -773,21 +773,15 @@ int do_ipaddr(char **argv)
|
||||
{
|
||||
static const char commands[] ALIGN1 =
|
||||
"add\0""delete\0""list\0""show\0""lst\0""flush\0";
|
||||
|
||||
int command_num = 2; /* default command is list */
|
||||
|
||||
smalluint cmd = 2;
|
||||
if (*argv) {
|
||||
command_num = index_in_substrings(commands, *argv);
|
||||
if (command_num < 0 || command_num > 5)
|
||||
bb_error_msg_and_die("unknown command %s", *argv);
|
||||
cmd = index_in_substrings(commands, *argv);
|
||||
if (cmd > 5)
|
||||
bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
|
||||
argv++;
|
||||
if (cmd <= 1)
|
||||
return ipaddr_modify((cmd == 0) ? RTM_NEWADDR : RTM_DELADDR, argv);
|
||||
}
|
||||
if (command_num == 0) /* add */
|
||||
return ipaddr_modify(RTM_NEWADDR, argv);
|
||||
if (command_num == 1) /* delete */
|
||||
return ipaddr_modify(RTM_DELADDR, argv);
|
||||
if (command_num == 5) /* flush */
|
||||
return ipaddr_list_or_flush(argv, 1);
|
||||
/* 2 == list, 3 == show, 4 == lst */
|
||||
return ipaddr_list_or_flush(argv, 0);
|
||||
return ipaddr_list_or_flush(argv, cmd == 5);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user