aboutsummaryrefslogtreecommitdiffstats
path: root/cli.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-10-14 04:38:29 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-10-14 04:38:29 +0000
commit850b151d70bb9a1dc28edd3c0d737b57b1ab43cc (patch)
treedc7852a42c6ac4b2dcd0347227e5e32c35724d4b /cli.c
parentfadccdf07b004e12dfe0d8d394527cf4d8c7e060 (diff)
Add option for "show modules like" (bug #2643)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3996 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'cli.c')
-rwxr-xr-xcli.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/cli.c b/cli.c
index 3eb8dda79..983c25dea 100755
--- a/cli.c
+++ b/cli.c
@@ -213,16 +213,20 @@ static int handle_unload(int fd, int argc, char *argv[])
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_showuptime(int fd, int argc, char *argv[])
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;