diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-01-04 18:28:28 +0300 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-01-04 18:28:28 +0300 |
commit | 83c44229d24b1e09c772c8e8e0ee4abad78139a6 (patch) | |
tree | c62e33810b7e3a376140e6056f6966996d7e6216 /networking/libiproute | |
parent | 21e20cb4ad106b9d49ff24652a5cd47380905d4d (diff) |
ip route: "ip route" was misbehaving (extra argv+1 ate 1st env var)
Diffstat (limited to 'networking/libiproute')
-rw-r--r-- | networking/libiproute/iproute.c | 10 |
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; |