[Asterisk-cvs] asterisk cli.c,1.57,1.58 loader.c,1.27,1.28

markster at lists.digium.com markster at lists.digium.com
Thu Oct 14 00:38:05 CDT 2004


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv9512

Modified Files:
	cli.c loader.c 
Log Message:
Add option for "show modules like" (bug #2643)


Index: cli.c
===================================================================
RCS file: /usr/cvsroot/asterisk/cli.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- cli.c	14 Oct 2004 04:12:05 -0000	1.57
+++ cli.c	14 Oct 2004 04:38:29 -0000	1.58
@@ -213,16 +213,20 @@
 AST_MUTEX_DEFINE_STATIC(climodentrylock);
 static int climodentryfd = -1;
 
-static int modlist_modentry(char *module, char *description, int usecnt)
+static int modlist_modentry(char *module, char *description, int usecnt, char *like)
 {
-	ast_cli(climodentryfd, MODLIST_FORMAT, module, description, usecnt);
+	/* Comparing the like with the module */
+	if ( strstr(module,like) != NULL) {
+		ast_cli(climodentryfd, MODLIST_FORMAT, module, description, usecnt);
+		return 1;
+		
+	} 
 	return 0;
 }
 
 static char modlist_help[] =
-"Usage: show modules\n"
-"       Shows Asterisk modules currently in use, and usage "
-"statistics.\n";
+"Usage: show modules [like keyword]\n"
+"       Shows Asterisk modules currently in use, and usage statistics.\n";
 
 static char version_help[] =
 "Usage: show version\n"
@@ -332,12 +336,19 @@
 
 static int handle_modlist(int fd, int argc, char *argv[])
 {
-	if (argc != 2)
+	char *like = "";
+	if (argc == 3)
 		return RESULT_SHOWUSAGE;
+	else if (argc >= 4) {
+		if ( strcmp(argv[2],"like") ) 
+			return RESULT_SHOWUSAGE;
+		like = argv[3];
+	}
+		
 	ast_mutex_lock(&climodentrylock);
 	climodentryfd = fd;
 	ast_cli(fd, MODLIST_FORMAT2, "Module", "Description", "Use Count");
-	ast_cli(fd,"%d modules loaded\n",ast_update_module_list(modlist_modentry));
+	ast_cli(fd,"%d modules loaded\n",ast_update_module_list(modlist_modentry,like));
 	climodentryfd = -1;
 	ast_mutex_unlock(&climodentrylock);
 	return RESULT_SUCCESS;

Index: loader.c
===================================================================
RCS file: /usr/cvsroot/asterisk/loader.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- loader.c	8 Oct 2004 18:20:49 -0000	1.27
+++ loader.c	14 Oct 2004 04:38:29 -0000	1.28
@@ -314,16 +314,16 @@
 			ast_verbose(VERBOSE_PREFIX_1 "Loaded %s => (%s)\n", fn, m->description());
 	}
 
-	// add module 'm' to end of module_list chain
-	// so reload commands will be issued in same order modules were loaded
+	/* add module 'm' to end of module_list chain
+  	   so reload commands will be issued in same order modules were loaded */
 	m->next = NULL;
 	if (module_list == NULL) {
-		// empty list so far, add at front
+		/* empty list so far, add at front */
 		module_list = m;
 	}
 	else {
 		struct module *i;
-		// find end of chain, and add there
+		/* find end of chain, and add there */
 		for (i = module_list; i->next; i = i->next)
 			;
 		i->next = m;
@@ -460,7 +460,7 @@
 	
 }
 
-int ast_update_module_list(int (*modentry)(char *module, char *description, int usecnt))
+int ast_update_module_list(int (*modentry)(char *module, char *description, int usecnt, char *like), char *like)
 {
 	struct module *m;
 	int unlock = -1;
@@ -469,9 +469,8 @@
 		unlock = 0;
 	m = module_list;
 	while(m) {
-		modentry(m->resource, m->description(), m->usecount());
+		total_mod_loaded += modentry(m->resource, m->description(), m->usecount(), like);
 		m = m->next;
-		total_mod_loaded++;
 	}
 	if (unlock)
 		ast_mutex_unlock(&modlock);




More information about the svn-commits mailing list