[asterisk-commits] rizzo: trunk r47727 - /trunk/main/cli.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Thu Nov 16 07:21:30 MST 2006


Author: rizzo
Date: Thu Nov 16 08:21:30 2006
New Revision: 47727

URL: http://svn.digium.com/view/asterisk?view=rev&rev=47727
Log:
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.


Modified:
    trunk/main/cli.c

Modified: trunk/main/cli.c
URL: http://svn.digium.com/view/asterisk/trunk/main/cli.c?view=diff&rev=47727&r1=47726&r2=47727
==============================================================================
--- trunk/main/cli.c (original)
+++ trunk/main/cli.c Thu Nov 16 08:21:30 2006
@@ -1649,9 +1649,16 @@
 			 */
 			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 @@
 				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) {



More information about the asterisk-commits mailing list