diff options
author | Luigi Rizzo <rizzo@icir.org> | 2006-11-16 14:21:30 +0000 |
---|---|---|
committer | Luigi Rizzo <rizzo@icir.org> | 2006-11-16 14:21:30 +0000 |
commit | 84a5921ab53336a83725c920409d8cb2d5209a8c (patch) | |
tree | 052bdfaef363fcefa13490f211bff863852140d2 /main/cli.c | |
parent | fc58bec502fbec7b78117cc7afc412cb5e2ff10a (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.c | 12 |
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) { |