ip route: "ip route" was misbehaving (extra argv+1 ate 1st env var)

This commit is contained in:
Denis Vlasenko 2008-01-04 15:28:28 +00:00
parent 21e20cb4ad
commit 83c44229d2

View File

@ -841,15 +841,17 @@ int do_iproute(char **argv)
/*0-3*/ "add\0""append\0""change\0""chg\0" /*0-3*/ "add\0""append\0""change\0""chg\0"
/*4-7*/ "delete\0""get\0""list\0""show\0" /*4-7*/ "delete\0""get\0""list\0""show\0"
/*8..*/ "prepend\0""replace\0""test\0""flush\0"; /*8..*/ "prepend\0""replace\0""test\0""flush\0";
int command_num = 6; int command_num;
unsigned flags = 0; unsigned flags = 0;
int cmd = RTM_NEWROUTE; int cmd = RTM_NEWROUTE;
if (!*argv)
return iproute_list_or_flush(argv, 0);
/* "Standard" 'ip r a' treats 'a' as 'add', not 'append' */ /* "Standard" 'ip r a' treats 'a' as 'add', not 'append' */
/* It probably means that it is using "first match" rule */ /* 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) { switch (command_num) {
case 0: /* add */ case 0: /* add */
flags = NLM_F_CREATE|NLM_F_EXCL; flags = NLM_F_CREATE|NLM_F_EXCL;