From 7bf4fc6c2a2916bddb9a1cda9b460d3d9abeaafb Mon Sep 17 00:00:00 2001
From: Jason Parker <jparker@digium.com>
Date: Sat, 1 Dec 2007 01:37:50 +0000
Subject: [PATCH] Only reload if the config file has changed.

Closes issue #11281, patch by eliel.


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

diff --git a/res/res_adsi.c b/res/res_adsi.c
index 149381a0ce..2df5324aad 100644
--- a/res/res_adsi.c
+++ b/res/res_adsi.c
@@ -1012,18 +1012,19 @@ static void init_state(void)
 	alignment = ADSI_JUST_CENT;
 }
 
-static void adsi_load(void)
+static void adsi_load(int reload)
 {
 	int x = 0;
 	struct ast_config *conf = NULL;
 	struct ast_variable *v;
-	struct ast_flags config_flags = { 0 };
+	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	char *name, *sname;
 	init_state();
 
 	if (!(conf = ast_config_load("adsi.conf", config_flags)))
 		return;
-	
+	else if (conf == CONFIG_STATUS_FILEUNCHANGED)
+		return;
 	for (v = ast_variable_browse(conf, "intro"); v; v = v->next) {
 		if (!strcasecmp(v->name, "alignment"))
 			alignment = str2align(v->value);
@@ -1066,13 +1067,13 @@ static void adsi_load(void)
 
 static int reload(void)
 {
-	adsi_load();
+	adsi_load(1);
 	return 0;
 }
 
 static int load_module(void)
 {
-	adsi_load();
+	adsi_load(0);
 
 	ast_adsi_begin_download = _ast_adsi_begin_download;
 	ast_adsi_end_download = _ast_adsi_end_download;
-- 
GitLab