fix 'sh vxlan tunnels' 21/13821/2
authorNeale Ranns <neale.ranns@cisco.com>
Mon, 30 Jul 2018 18:59:22 +0000 (11:59 -0700)
committerDave Barach <openvpp@barachs.net>
Tue, 31 Jul 2018 11:37:16 +0000 (11:37 +0000)
this receipe:
  /* Get a line of input. */
  if (!unformat_user (input, unformat_line_input, line_input))
    return 0;
only works if there is more data following the registered command name.
So it is not so good for show commands...

Change-Id: I54249865a44526ade4b40e2d6207138a2d056e40
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
src/vnet/vxlan/vxlan.c

index f0312be..ce56554 100644 (file)
@@ -851,30 +851,19 @@ show_vxlan_tunnel_command_fn (vlib_main_t * vm,
                              unformat_input_t * input,
                              vlib_cli_command_t * cmd)
 {
-  unformat_input_t _line_input, *line_input = &_line_input;
   vxlan_main_t *vxm = &vxlan_main;
   vxlan_tunnel_t *t;
   int raw = 0;
-  clib_error_t *parse_error = NULL;
-
-  /* Get a line of input. */
-  if (!unformat_user (input, unformat_line_input, line_input))
-    return 0;
 
-  while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
+  while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
     {
-      if (unformat (line_input, "raw"))
+      if (unformat (input, "raw"))
        raw = 1;
       else
-       parse_error = clib_error_return (0, "parse error: '%U'",
-                                        format_unformat_error, line_input);
+       return clib_error_return (0, "parse error: '%U'",
+                                 format_unformat_error, input);
     }
 
-  unformat_free (line_input);
-
-  if (parse_error)
-    return parse_error;
-
   if (pool_elts (vxm->tunnels) == 0)
     vlib_cli_output (vm, "No vxlan tunnels configured...");