make kevin (and 64 bit machines) happy and
authorLuigi Rizzo <rizzo@icir.org>
Thu, 16 Nov 2006 14:21:30 +0000 (14:21 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Thu, 16 Nov 2006 14:21:30 +0000 (14:21 +0000)
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

main/cli.c

index f69f90b..2dc6afa 100644 (file)
@@ -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) {