summaryrefslogtreecommitdiff
path: root/main/cli.c
diff options
context:
space:
mode:
authorLuigi Rizzo <rizzo@icir.org>2006-11-16 14:21:30 +0000
committerLuigi Rizzo <rizzo@icir.org>2006-11-16 14:21:30 +0000
commit84a5921ab53336a83725c920409d8cb2d5209a8c (patch)
tree052bdfaef363fcefa13490f211bff863852140d2 /main/cli.c
parentfc58bec502fbec7b78117cc7afc412cb5e2ff10a (diff)
make kevin (and 64 bit machines) happy and
remove a cast from char* to int in handling the return values from new-style handlers. On passing, note that main/loader.c::ast_load_resource() always return 0 so errors are not propagated up. I am not sure this is the intended behaviour. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/cli.c')
-rw-r--r--main/cli.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/main/cli.c b/main/cli.c
index f69f90b14..2dc6afa1f 100644
--- a/main/cli.c
+++ b/main/cli.c
@@ -1649,9 +1649,16 @@ int ast_cli_command(int fd, const char *s)
*/
args[0] = (char *)e;
if (e->new_handler) { /* new style */
+ char *retval;
struct ast_cli_args a = {
.fd = fd, .argc = x, .argv = args+1 };
- res = (int)e->new_handler(e, CLI_HANDLER, &a);
+ retval = e->new_handler(e, CLI_HANDLER, &a);
+ if (retval == CLI_SUCCESS)
+ res = RESULT_SUCCESS;
+ else if (retval == CLI_SHOWUSAGE)
+ res = RESULT_SHOWUSAGE;
+ else
+ res = RESULT_FAILURE;
} else { /* old style */
res = e->handler(fd, x, args + 1);
}
@@ -1662,6 +1669,9 @@ int ast_cli_command(int fd, const char *s)
else
ast_cli(fd, "Invalid usage, but no usage information available.\n");
break;
+ case RESULT_FAILURE:
+ ast_cli(fd, "Command '%s' failed.\n", s);
+ /* FALLTHROUGH */
default:
AST_LIST_LOCK(&helpers);
if (e->deprecated == 1) {