diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-10-14 04:38:29 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-10-14 04:38:29 +0000 |
commit | 850b151d70bb9a1dc28edd3c0d737b57b1ab43cc (patch) | |
tree | dc7852a42c6ac4b2dcd0347227e5e32c35724d4b /cli.c | |
parent | fadccdf07b004e12dfe0d8d394527cf4d8c7e060 (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-x | cli.c | 25 |
1 files changed, 18 insertions, 7 deletions
@@ -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; |