aboutsummaryrefslogtreecommitdiffstats
path: root/channels/iax2-provision.c
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-16 21:09:46 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-16 21:09:46 +0000
commitdbec3d56c146801fad339a1d46a388865b18ffb4 (patch)
tree8fda811f62cb6ffb99847befb7b74b1519ea95ba /channels/iax2-provision.c
parent0fb9c73a989207650aa3ba603824e4593809611b (diff)
Don't reload a configuration file if nothing has changed.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@79747 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/iax2-provision.c')
-rw-r--r--channels/iax2-provision.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/channels/iax2-provision.c b/channels/iax2-provision.c
index dd3419a9e..031897fc7 100644
--- a/channels/iax2-provision.c
+++ b/channels/iax2-provision.c
@@ -485,12 +485,13 @@ int iax_provision_unload(void)
return 0;
}
-int iax_provision_reload(void)
+int iax_provision_reload(int reload)
{
struct ast_config *cfg;
struct iax_template *cur, *prev, *next;
char *cat;
int found = 0;
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
if (!provinit)
iax_provision_init();
/* Mark all as dead. No need for locking */
@@ -499,8 +500,8 @@ int iax_provision_reload(void)
cur->dead = 1;
cur = cur->next;
}
- cfg = ast_config_load("iaxprov.conf");
- if (cfg) {
+ cfg = ast_config_load("iaxprov.conf", config_flags);
+ if (cfg != NULL && cfg != CONFIG_STATUS_FILEUNCHANGED) {
/* Load as appropriate */
cat = ast_category_browse(cfg, NULL);
while(cat) {
@@ -512,7 +513,9 @@ int iax_provision_reload(void)
cat = ast_category_browse(cfg, cat);
}
ast_config_destroy(cfg);
- } else
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
+ else
ast_log(LOG_NOTICE, "No IAX provisioning configuration found, IAX provisioning disabled.\n");
ast_mutex_lock(&provlock);
/* Drop dead entries while locked */