From 84a5921ab53336a83725c920409d8cb2d5209a8c Mon Sep 17 00:00:00 2001
From: Luigi Rizzo <rizzo@icir.org>
Date: Thu, 16 Nov 2006 14:21:30 +0000
Subject: [PATCH] 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
---
 main/cli.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/main/cli.c b/main/cli.c
index f69f90b14a..2dc6afa1fe 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) {
-- 
GitLab