aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/libiproute/iproute.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
index ce2cd8b39..5ded99b2e 100644
--- a/networking/libiproute/iproute.c
+++ b/networking/libiproute/iproute.c
@@ -841,15 +841,17 @@ int do_iproute(char **argv)
/*0-3*/ "add\0""append\0""change\0""chg\0"
/*4-7*/ "delete\0""get\0""list\0""show\0"
/*8..*/ "prepend\0""replace\0""test\0""flush\0";
- int command_num = 6;
+ int command_num;
unsigned flags = 0;
int cmd = RTM_NEWROUTE;
+ if (!*argv)
+ return iproute_list_or_flush(argv, 0);
+
/* "Standard" 'ip r a' treats 'a' as 'add', not 'append' */
/* It probably means that it is using "first match" rule */
- if (*argv) {
- command_num = index_in_substrings(ip_route_commands, *argv);
- }
+ command_num = index_in_substrings(ip_route_commands, *argv);
+
switch (command_num) {
case 0: /* add */
flags = NLM_F_CREATE|NLM_F_EXCL;