From fcc3a3ac326d2364e1f77976d86739030f330d4b Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" <kpfleming@digium.com> Date: Thu, 25 Aug 2005 23:29:30 +0000 Subject: [PATCH] don't install moh functions if no classes are configured (issue #5025 with mods) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6412 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_musiconhold.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index c2db43d744..9dcb429a03 100755 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -471,7 +471,7 @@ static void *monmp3thread(void *data) /* Spawn mp3 player if it's not there */ if (class->srcfd < 0) { if ((class->srcfd = spawn_mp3(class)) < 0) { - ast_log(LOG_WARNING, "unable to spawn mp3player\n"); + ast_log(LOG_WARNING, "Unable to spawn mp3player\n"); /* Try again later */ sleep(500); } @@ -1135,24 +1135,25 @@ static struct ast_cli_entry cli_moh_classes_show = { { "moh", "classes", "show" static struct ast_cli_entry cli_moh_files_show = { { "moh", "files", "show"}, cli_files_show, "List MOH file-based classes", "Lists all loaded file-based MOH classes and their files", NULL}; -static void init_classes(void) +static int init_classes(void) { struct mohclass *moh; - load_moh_classes(); + if (!load_moh_classes()) /* Load classes from config */ + return 0; /* Return if nothing is found */ moh = mohclasses; while (moh) { if (moh->total_files) moh_scan_files(moh); moh = moh->next; } + return 1; } int load_module(void) { int res; - ast_install_music_functions(local_ast_moh_start, local_ast_moh_stop, local_ast_moh_cleanup); res = ast_register_application(app0, moh0_exec, synopsis0, descrip0); ast_register_atexit(ast_moh_destroy); ast_cli_register(&cli_moh); @@ -1167,14 +1168,19 @@ int load_module(void) if (!res) res = ast_register_application(app4, moh4_exec, synopsis4, descrip4); - init_classes(); + if (!init_classes()) { /* No music classes configured, so skip it */ + ast_log(LOG_WARNING, "No music on hold classes configured, disabling music on hold."); + } else { + ast_install_music_functions(local_ast_moh_start, local_ast_moh_stop, local_ast_moh_cleanup); + } return 0; } int reload(void) { - init_classes(); + if (init_classes()) + ast_install_music_functions(local_ast_moh_start, local_ast_moh_stop, local_ast_moh_cleanup); return 0; } -- GitLab