vlib: fix "<command> help" 44/23944/2
authorDave Barach <dave@barachs.net>
Wed, 11 Dec 2019 14:46:56 +0000 (09:46 -0500)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 12 Dec 2019 18:02:48 +0000 (18:02 +0000)
Walk the sub_commands vector directly.

Type: fix
Fixes: 6b3f25caff262b536a5449ac5461dd041c92a655

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I3022b39e5a739647ec68effc6756166ce2da85b6

src/vlib/cli.c

index 0ecdac3..6088fc2 100644 (file)
@@ -392,8 +392,6 @@ vlib_cli_dispatch_sub_commands (vlib_main_t * vm,
   unformat_input_t sub_input;
   u8 *string;
   uword is_main_dispatch = cm == &vm->cli_main;
-  uword value;
-  u8 *key;
 
   parent = vec_elt_at_index (cm->commands, parent_command_index);
   if (is_main_dispatch && unformat (input, "help"))
@@ -428,17 +426,15 @@ vlib_cli_dispatch_sub_commands (vlib_main_t * vm,
       else
        {
          vlib_cli_sub_rule_t *sr, *subs = 0;
-
-          /* *INDENT-OFF* */
-          hash_foreach_mem (key, value, c->sub_command_index_by_name,
-          ({
-            (void) key;
-            vec_add2 (subs, sr, 1);
-            sr->name = c->sub_commands[value].name;
-            sr->command_index = value;
-            sr->rule_index = ~0;
-          }));
-          /* *INDENT-ON* */
+         vlib_cli_sub_command_t *sc;
+
+         vec_foreach (sc, c->sub_commands)
+         {
+           vec_add2 (subs, sr, 1);
+           sr->name = sc->name;
+           sr->command_index = sc->index;
+           sr->rule_index = ~0;
+         }
 
          vec_sort_with_function (subs, vlib_cli_cmp_rule);