[asterisk-commits] qwell: trunk r90038 - in /trunk: include/asterisk/ main/ res/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Nov 28 14:27:40 CST 2007


Author: qwell
Date: Wed Nov 28 14:27:40 2007
New Revision: 90038

URL: http://svn.digium.com/view/asterisk?view=rev&rev=90038
Log:
Remove "old"-style CLI handler, since nothing uses it anymore.

Closes issue #11403, patch by eliel.  This also completes the janitor project.

Modified:
    trunk/include/asterisk/cli.h
    trunk/main/cli.c
    trunk/main/pbx.c
    trunk/res/res_crypto.c

Modified: trunk/include/asterisk/cli.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/cli.h?view=diff&rev=90038&r1=90037&r2=90038
==============================================================================
--- trunk/include/asterisk/cli.h (original)
+++ trunk/include/asterisk/cli.h Wed Nov 28 14:27:40 2007
@@ -142,60 +142,40 @@
 };
 
 struct ast_cli_entry;
-typedef int (*old_cli_fn)(int fd, int argc, char *argv[]);
-typedef char *(*new_cli_fn)(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
+typedef char *(*cli_fn)(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
 
 /*! \brief descriptor for a cli entry. 
  * \arg \ref CLI_command_API
  */
 struct ast_cli_entry {
 	char * const cmda[AST_MAX_CMD_LEN];	/*!< words making up the command.
-		* set the first entry to NULL for a new-style entry. */
-
-	/*! Handler for the command (fd for output, # of args, argument list).
-	  Returns RESULT_SHOWUSAGE for improper arguments.
-	  argv[] has argc 'useful' entries, and an additional NULL entry
-	  at the end so that clients requiring NULL terminated arrays
-	  can use it without need for copies.
-	  You can overwrite argv or the strings it points to, but remember
-	  that this memory is deallocated after the handler returns.
-	 */
-	old_cli_fn handler;
-
-	const char *summary; /*!< Summary of the command (< 60 characters) */
-	const char *usage; /*!< Detailed usage information */
-
-	/*! Generate the n-th (starting from 0) possible completion
-	  for a given 'word' following 'line' in position 'pos'.
-	  'line' and 'word' must not be modified.
-	  Must return a malloc'ed string with the n-th value when available,
-	  or NULL if the n-th completion does not exist.
-	  Typically, the function is called with increasing values for n
-	  until a NULL is returned.
-	 */
-	char *(*generator)(const char *line, const char *word, int pos, int n);
+						* set the first entry to NULL for a new-style entry. */
+
+	const char *summary; 			/*!< Summary of the command (< 60 characters) */
+	const char *usage; 			/*!< Detailed usage information */
+
 	struct ast_cli_entry *deprecate_cmd;
 
-	int inuse; /*!< For keeping track of usage */
-	struct module *module;	/*!< module this belongs to */
-	char *_full_cmd;	/*!< built at load time from cmda[] */
-	int cmdlen;		/*!< len up to the first invalid char [<{% */
+	int inuse; 				/*!< For keeping track of usage */
+	struct module *module;			/*!< module this belongs to */
+	char *_full_cmd;			/*!< built at load time from cmda[] */
+	int cmdlen;				/*!< len up to the first invalid char [<{% */
 	/*! \brief This gets set in ast_cli_register()
 	  It then gets set to something different when the deprecated command
 	  is run for the first time (ie; after we warn the user that it's deprecated)
 	 */
-	int args;		/*!< number of non-null entries in cmda */
-	char *command;		/*!< command, non-null for new-style entries */
+	int args;				/*!< number of non-null entries in cmda */
+	char *command;				/*!< command, non-null for new-style entries */
 	int deprecated;
-	new_cli_fn new_handler;
-	char *_deprecated_by;	/*!< copied from the "parent" _full_cmd, on deprecated commands */
+	cli_fn handler;
+	char *_deprecated_by;			/*!< copied from the "parent" _full_cmd, on deprecated commands */
 	/*! For linking */
 	AST_LIST_ENTRY(ast_cli_entry) list;
 };
 
 /* XXX the parser in gcc 2.95 gets confused if you don't put a space
  * between the last arg before VA_ARGS and the comma */
-#define AST_CLI_DEFINE(fn, txt , ... )	{ .new_handler = fn, .summary = txt, ## __VA_ARGS__ }
+#define AST_CLI_DEFINE(fn, txt , ... )	{ .handler = fn, .summary = txt, ## __VA_ARGS__ }
 
 /*!
  * Helper function to generate cli entries from a NULL-terminated array.

Modified: trunk/main/cli.c
URL: http://svn.digium.com/view/asterisk/trunk/main/cli.c?view=diff&rev=90038&r1=90037&r2=90038
==============================================================================
--- trunk/main/cli.c (original)
+++ trunk/main/cli.c Wed Nov 28 14:27:40 2007
@@ -565,7 +565,7 @@
 	ast_cli(a->fd,"%d modules loaded\n", ast_update_module_list(modlist_modentry, like));
 	climodentryfd = -1;
 	ast_mutex_unlock(&climodentrylock);
-	return RESULT_SUCCESS;
+	return CLI_SUCCESS;
 }
 #undef MODLIST_FORMAT
 #undef MODLIST_FORMAT2
@@ -885,7 +885,7 @@
 		c = ast_channel_walk_locked(c);
 	}
 	ast_cli(a->fd, "Debugging on new channels is %s\n", is_off ? "disabled" : "enabled");
-	return RESULT_SUCCESS;
+	return CLI_SUCCESS;
 }
 
 static char *handle_debugchan_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
@@ -1354,7 +1354,7 @@
 		AST_RWLIST_UNLOCK(&helpers);
 		ast_free(e->_full_cmd);
 		e->_full_cmd = NULL;
-		if (e->new_handler) {
+		if (e->handler) {
 			/* this is a new-style entry. Reset fields and free memory. */
 			bzero((char **)(e->cmda), sizeof(e->cmda));
 			ast_free(e->command);
@@ -1370,26 +1370,25 @@
 	struct ast_cli_entry *cur;
 	int i, lf, ret = -1;
 
-	if (e->handler == NULL) {	/* new style entry, run the handler to init fields */
-		struct ast_cli_args a;	/* fake argument */
-		char **dst = (char **)e->cmda;	/* need to cast as the entry is readonly */
-		char *s;
-
-		bzero (&a, sizeof(a));
-		e->new_handler(e, CLI_INIT, &a);
-		/* XXX check that usage and command are filled up */
-		s = ast_skip_blanks(e->command);
-		s = e->command = ast_strdup(s);
-		for (i=0; !ast_strlen_zero(s) && i < AST_MAX_CMD_LEN-1; i++) {
-			*dst++ = s;	/* store string */
-			s = ast_skip_nonblanks(s);
-			if (*s == '\0')	/* we are done */
-				break;
-			*s++ = '\0';
-			s = ast_skip_blanks(s);
-		}
-		*dst++ = NULL;
-	}
+	struct ast_cli_args a;	/* fake argument */
+	char **dst = (char **)e->cmda;	/* need to cast as the entry is readonly */
+	char *s;
+
+	bzero (&a, sizeof(a));
+	e->handler(e, CLI_INIT, &a);
+	/* XXX check that usage and command are filled up */
+	s = ast_skip_blanks(e->command);
+	s = e->command = ast_strdup(s);
+	for (i=0; !ast_strlen_zero(s) && i < AST_MAX_CMD_LEN-1; i++) {
+		*dst++ = s;	/* store string */
+		s = ast_skip_nonblanks(s);
+		if (*s == '\0')	/* we are done */
+			break;
+		*s++ = '\0';
+		s = ast_skip_blanks(s);
+	}
+	*dst++ = NULL;
+	
 	AST_RWLIST_WRLOCK(&helpers);
 	
 	if (find_cli(e->cmda, 1)) {
@@ -1549,7 +1548,7 @@
 		ast_cli(a->fd, "No help text available for '%s'.\n", fullcmd);
 	}
 	AST_RWLIST_UNLOCK(&helpers);
-	return RESULT_SUCCESS;
+	return CLI_SUCCESS;
 }
 
 static char *parse_args(const char *s, int *argc, char *argv[], int max, int *trailingwhitespace)
@@ -1760,14 +1759,12 @@
 			 * (only one entry in the list should have this property).
 			 * Run the generator if one is available. In any case we are done.
 			 */
-			if (e->generator)
-				ret = e->generator(matchstr, word, argindex, state - matchnum);
-			else if (e->new_handler) {	/* new style command */
+			if (e->handler) {	/* new style command */
 				struct ast_cli_args a = {
 					.line = matchstr, .word = word,
 					.pos = argindex,
 					.n = state - matchnum };
-				ret = e->new_handler(e, CLI_GENERATE, &a);
+				ret = e->handler(e, CLI_GENERATE, &a);
 			}
 			if (ret)
 				break;
@@ -1789,7 +1786,6 @@
 	char *args[AST_MAX_ARGS + 1];
 	struct ast_cli_entry *e;
 	int x;
-	int res;
 	char *dup = parse_args(s, &x, args + 1, AST_MAX_ARGS, NULL);
 
 	if (dup == NULL)
@@ -1813,39 +1809,25 @@
 	 */
 	args[0] = (char *)e;
 
-	if (!e->new_handler)	/* old style */
-		res = e->handler(fd, x, args + 1);
-	else {
-		struct ast_cli_args a = {
-			.fd = fd, .argc = x, .argv = args+1 };
-		char *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;
-	}
-	switch (res) {
-	case RESULT_SHOWUSAGE:
+	struct ast_cli_args a = {
+		.fd = fd, .argc = x, .argv = args+1 };
+	char *retval = e->handler(e, CLI_HANDLER, &a);
+
+	if (retval == CLI_SHOWUSAGE) {
 		ast_cli(fd, "%s", S_OR(e->usage, "Invalid usage, but no usage information available.\n"));
 		AST_RWLIST_RDLOCK(&helpers);
 		if (e->deprecated)
 			ast_cli(fd, "The '%s' command is deprecated and will be removed in a future release. Please use '%s' instead.\n", e->_full_cmd, e->_deprecated_by);
 		AST_RWLIST_UNLOCK(&helpers);
-		break;
-	case RESULT_FAILURE:
-		ast_cli(fd, "Command '%s' failed.\n", s);
-		/* FALLTHROUGH */
-	default:
+	} else {
+		if (retval == CLI_FAILURE)
+			ast_cli(fd, "Command '%s' failed.\n", s);
 		AST_RWLIST_RDLOCK(&helpers);
 		if (e->deprecated == 1) {
 			ast_cli(fd, "The '%s' command is deprecated and will be removed in a future release. Please use '%s' instead.\n", e->_full_cmd, e->_deprecated_by);
 			e->deprecated = 2;
 		}
 		AST_RWLIST_UNLOCK(&helpers);
-		break;
 	}
 	ast_atomic_fetchadd_int(&e->inuse, -1);
 done:

Modified: trunk/main/pbx.c
URL: http://svn.digium.com/view/asterisk/trunk/main/pbx.c?view=diff&rev=90038&r1=90037&r2=90038
==============================================================================
--- trunk/main/pbx.c (original)
+++ trunk/main/pbx.c Wed Nov 28 14:27:40 2007
@@ -4230,7 +4230,7 @@
 	if (AST_RWLIST_EMPTY(&switches)) {
 		AST_RWLIST_UNLOCK(&switches);
 		ast_cli(a->fd, "There are no registered alternative switches\n");
-		return RESULT_SUCCESS;
+		return CLI_SUCCESS;
 	}
 
 	ast_cli(a->fd, "\n    -= Registered Asterisk Alternative Switches =-\n");

Modified: trunk/res/res_crypto.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_crypto.c?view=diff&rev=90038&r1=90037&r2=90038
==============================================================================
--- trunk/res/res_crypto.c (original)
+++ trunk/res/res_crypto.c Wed Nov 28 14:27:40 2007
@@ -487,7 +487,7 @@
  * \param e CLI command
  * \param cmd
  * \param a list of CLI arguments
- * \return RESULT_SUCCESS
+ * \return CLI_SUCCESS
 */
 static char *handle_cli_keys_show(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
@@ -533,7 +533,7 @@
  * \param e CLI command
  * \param cmd 
  * \param a list of CLI arguments
- * \return RESULT_SUCCESS
+ * \return CLI_SUCCESS
 */
 static char *handle_cli_keys_init(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {




More information about the asterisk-commits mailing list