diff options
author | Swarup Nayak <swarupnpvt@gmail.com> | 2017-12-04 11:54:43 +0530 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2017-12-10 00:20:16 +0000 |
commit | 82d8ec2571720310f0a7c41deeba30534be28ed0 (patch) | |
tree | cb0c8ed539332fc48a8f72ce26a471f85ce2d799 /src/vlib/unix | |
parent | 9128637ee8f7b0d903551f165a1447d427e8dd19 (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/unix')
-rw-r--r-- | src/vlib/unix/cj.c | 26 |
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; } /*? |