From 621a86db183f12db1b5297c1ae7bda12abeb1b2f Mon Sep 17 00:00:00 2001
From: Tilghman Lesher <tilghman@meg.abyt.es>
Date: Wed, 23 Jun 2010 21:53:49 +0000
Subject: [PATCH] If there is realtime configuration, it does not get re-read
 on reload unless the config file also changes.

(closes issue #16982)
 Reported by: dmitri
 Patches:
       res_musiconhold.patch uploaded by dmitri (license 1001)
 Tested by: atis


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@272332 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 res/res_musiconhold.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c
index dd031e3df6..d10baa2431 100644
--- a/res/res_musiconhold.c
+++ b/res/res_musiconhold.c
@@ -1605,6 +1605,10 @@ static int load_moh_classes(int reload)
 	cfg = ast_config_load("musiconhold.conf", config_flags);
 
 	if (cfg == CONFIG_STATUS_FILEMISSING || cfg == CONFIG_STATUS_FILEUNCHANGED || cfg == CONFIG_STATUS_FILEINVALID) {
+		if (ast_check_realtime("musiconhold") && reload) {
+			ao2_t_callback(mohclasses, OBJ_NODATA, moh_class_mark, NULL, "Mark deleted classes");
+			ao2_t_callback(mohclasses, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, moh_classes_delete_marked, NULL, "Purge marked classes");
+		}
 		return 0;
 	}
 
@@ -1827,7 +1831,7 @@ static int load_module(void)
 		return AST_MODULE_LOAD_DECLINE;
 	}
 
-	if (!load_moh_classes(0)) { 	/* No music classes configured, so skip it */
+	if (!load_moh_classes(0) && ast_check_realtime("musiconhold") == 0) { 	/* No music classes configured, so skip it */
 		ast_log(LOG_WARNING, "No music on hold classes configured, "
 				"disabling music on hold.\n");
 	} else {
-- 
GitLab