diff options
author | Corey Farrell <git@cfware.com> | 2017-10-30 01:32:32 -0400 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2017-10-30 00:40:05 -0500 |
commit | 57f53352780319377752fed2a6393e5321a72d44 (patch) | |
tree | 9318ea207c84d5b98b5816b952e55285942af2db | |
parent | f5f80fae31242ec787ffcc65f255f3c7f64850c0 (diff) |
Modules: Fix issues with CLI completion.
* Stop using ast_module_helper to check if a module is loaded, use
ast_module_check instead (app_confbridge and app_meetme).
* Stop ast_module_helper from listing reload classes when needsreload
was not requested.
ASTERISK-27378
Change-Id: Iaed8c1e4fcbeb242921dbac7929a0fe75ff4b239
-rw-r--r-- | apps/app_confbridge.c | 17 | ||||
-rw-r--r-- | apps/app_meetme.c | 6 | ||||
-rw-r--r-- | main/loader.c | 8 |
3 files changed, 11 insertions, 20 deletions
diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c index d218d0f2e..73dff8634 100644 --- a/apps/app_confbridge.c +++ b/apps/app_confbridge.c @@ -2386,21 +2386,12 @@ static int confbridge_exec(struct ast_channel *chan, const char *data) user.tech_args.drop_silence = 1; } - if (ast_test_flag(&user.u_profile, USER_OPT_JITTERBUFFER)) { - char *func_jb; - if ((func_jb = ast_module_helper("", "func_jitterbuffer", 0, 0, 0, 0))) { - ast_free(func_jb); - ast_func_write(chan, "JITTERBUFFER(adaptive)", "default"); - } + if (ast_test_flag(&user.u_profile, USER_OPT_JITTERBUFFER) && ast_module_check("func_jitterbuffer.so")) { + ast_func_write(chan, "JITTERBUFFER(adaptive)", "default"); } - if (ast_test_flag(&user.u_profile, USER_OPT_DENOISE)) { - char *mod_speex; - /* Reduce background noise from each participant */ - if ((mod_speex = ast_module_helper("", "codec_speex", 0, 0, 0, 0))) { - ast_free(mod_speex); - ast_func_write(chan, "DENOISE(rx)", "on"); - } + if (ast_test_flag(&user.u_profile, USER_OPT_DENOISE) && ast_module_check("codec_speex.so")) { + ast_func_write(chan, "DENOISE(rx)", "on"); } /* if this user has a intro, play it before entering */ diff --git a/apps/app_meetme.c b/apps/app_meetme.c index 7ca9ba39f..5567fe036 100644 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -3198,7 +3198,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, struc struct timeval now; struct ast_dsp *dsp = NULL; struct ast_app *agi_app; - char *agifile, *mod_speex; + char *agifile; const char *agifiledefault = "conf-background.agi", *tmpvar; char meetmesecs[30] = ""; char exitcontext[AST_MAX_CONTEXT] = ""; @@ -3588,9 +3588,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, struc } /* Reduce background noise from each participant */ - if (!ast_test_flag64(confflags, CONFFLAG_DONT_DENOISE) && - (mod_speex = ast_module_helper("", "func_speex", 0, 0, 0, 0))) { - ast_free(mod_speex); + if (!ast_test_flag64(confflags, CONFFLAG_DONT_DENOISE) && ast_module_check("func_speex.so")) { ast_func_write(chan, "DENOISE(rx)", "on"); } diff --git a/main/loader.c b/main/loader.c index d5500076b..8250f1ffb 100644 --- a/main/loader.c +++ b/main/loader.c @@ -708,8 +708,9 @@ char *ast_module_helper(const char *line, const char *word, int pos, int state, int i, which=0, l = strlen(word); char *ret = NULL; - if (pos != rpos) + if (pos != rpos) { return NULL; + } AST_DLLIST_LOCK(&module_list); AST_DLLIST_TRAVERSE(&module_list, cur, entry) { @@ -722,10 +723,11 @@ char *ast_module_helper(const char *line, const char *word, int pos, int state, } AST_DLLIST_UNLOCK(&module_list); - if (!ret) { + if (!ret && needsreload) { for (i=0; !ret && reload_classes[i].name; i++) { - if (!strncasecmp(word, reload_classes[i].name, l) && ++which > state) + if (!strncasecmp(word, reload_classes[i].name, l) && ++which > state) { ret = ast_strdup(reload_classes[i].name); + } } } |