mirror of
https://github.com/asterisk/asterisk.git
synced 2026-01-13 13:24:08 +00:00
On reload, re-read the files in the specified moh directory (closes issue #10536)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86277 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -887,6 +887,23 @@ static int moh_scan_files(struct mohclass *class) {
|
||||
return class->total_files;
|
||||
}
|
||||
|
||||
static int moh_diff(struct mohclass *old, struct mohclass *new)
|
||||
{
|
||||
if (!old || !new)
|
||||
return -1;
|
||||
|
||||
if (strcmp(old->dir, new->dir))
|
||||
return -1;
|
||||
else if (strcmp(old->mode, new->mode))
|
||||
return -1;
|
||||
else if (strcmp(old->args, new->args))
|
||||
return -1;
|
||||
else if (old->flags != new->flags)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int moh_register(struct mohclass *moh, int reload)
|
||||
{
|
||||
#ifdef HAVE_ZAPTEL
|
||||
@@ -895,7 +912,7 @@ static int moh_register(struct mohclass *moh, int reload)
|
||||
struct mohclass *mohclass = NULL;
|
||||
|
||||
AST_RWLIST_WRLOCK(&mohclasses);
|
||||
if ((mohclass = get_mohbyname(moh->name, 0))) {
|
||||
if ((mohclass = get_mohbyname(moh->name, 0)) && !moh_diff(mohclass, moh)) {
|
||||
mohclass->delete = 0;
|
||||
if (reload) {
|
||||
ast_debug(1, "Music on Hold class '%s' left alone from initial load.\n", moh->name);
|
||||
|
||||
Reference in New Issue
Block a user