aboutsummaryrefslogtreecommitdiffstats
path: root/src/vlib
diff options
context:
space:
mode:
authorSwarup Nayak <swarupnpvt@gmail.com>2017-12-04 11:54:43 +0530
committerFlorin Coras <florin.coras@gmail.com>2017-12-10 00:20:16 +0000
commit82d8ec2571720310f0a7c41deeba30534be28ed0 (patch)
treecb0c8ed539332fc48a8f72ce26a471f85ce2d799 /src/vlib
parent9128637ee8f7b0d903551f165a1447d427e8dd19 (diff)
VPP-1077 Add meaningful error info, when executing command with enable/disable option
Change-Id: I47dd6f9637f0214971e3191852d84aa92d64b8c0 Signed-off-by: Swarup Nayak <swarupnpvt@gmail.com>
Diffstat (limited to 'src/vlib')
-rw-r--r--src/vlib/unix/cj.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/vlib/unix/cj.c b/src/vlib/unix/cj.c
index 7c1e94753f5..0232ea2d690 100644
--- a/src/vlib/unix/cj.c
+++ b/src/vlib/unix/cj.c
@@ -220,18 +220,28 @@ cj_command_fn (vlib_main_t * vm,
{
int is_enable = -1;
int is_dump = -1;
+ unformat_input_t _line_input, *line_input = &_line_input;
+ clib_error_t *error = NULL;
- while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
+ /* Get a line of input. */
+ if (!unformat_user (input, unformat_line_input, line_input))
+ return clib_error_return (0, "expected enable | disable | dump");
+
+ while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
{
- if (unformat (input, "enable") || unformat (input, "on"))
+ if (unformat (line_input, "enable") || unformat (line_input, "on"))
is_enable = 1;
- else if (unformat (input, "disable") || unformat (input, "off"))
+ else if (unformat (line_input, "disable")
+ || unformat (line_input, "off"))
is_enable = 0;
- else if (unformat (input, "dump"))
+ else if (unformat (line_input, "dump"))
is_dump = 1;
else
- return clib_error_return (0, "unknown input `%U'",
- format_unformat_error, input);
+ {
+ error = clib_error_return (0, "unknown input `%U'",
+ format_unformat_error, line_input);
+ goto done;
+ }
}
if (is_enable >= 0)
@@ -240,7 +250,9 @@ cj_command_fn (vlib_main_t * vm,
if (is_dump > 0)
cj_dump ();
- return 0;
+done:
+ unformat_free (line_input);
+ return error;
}
/*?