config: inform config hook of change when writing file
authorScott Griepentrog <sgriepentrog@digium.com>
Fri, 11 Jul 2014 16:42:49 +0000 (16:42 +0000)
committerScott Griepentrog <sgriepentrog@digium.com>
Fri, 11 Jul 2014 16:42:49 +0000 (16:42 +0000)
When updated configuration is written back to the conf
file - for example when a user changes their voicemail
pin, make sure that any config hook that wants to know
of changes is informed.

Review: https://reviewboard.asterisk.org/r/3708/
........

Merged revisions 418366 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 418369 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418370 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/config.c

index d9bef2e..cd2e8b8 100644 (file)
@@ -69,7 +69,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 static char *extconfig_conf = "extconfig.conf";
 
 static struct ao2_container *cfg_hooks;
-static void config_hook_exec(const char *filename, const char *module, struct ast_config *cfg);
+static void config_hook_exec(const char *filename, const char *module, const struct ast_config *cfg);
 inline struct ast_variable *variable_list_switch(struct ast_variable *l1, struct ast_variable *l2);
 
 /*! \brief Structure to keep comments for rewriting configuration files */
@@ -2425,6 +2425,9 @@ int ast_config_text_file_save(const char *configfile, const struct ast_config *c
        }
        ao2_ref(fileset, -1); /* this should destroy the hash container */
 
+       /* pass new configuration to any config hooks */
+       config_hook_exec(configfile, generator, cfg);
+
        return 0;
 }
 
@@ -3592,7 +3595,7 @@ void ast_config_hook_unregister(const char *name)
        ao2_find(cfg_hooks, &tmp, OBJ_POINTER | OBJ_UNLINK | OBJ_NODATA);
 }
 
-static void config_hook_exec(const char *filename, const char *module, struct ast_config *cfg)
+static void config_hook_exec(const char *filename, const char *module, const struct ast_config *cfg)
 {
        struct ao2_iterator it;
        struct cfg_hook *hook;