[asterisk-commits] seanbright: branch seanbright/cdr-syslog r203844 - /team/seanbright/cdr-syslo...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jun 26 16:55:33 CDT 2009


Author: seanbright
Date: Fri Jun 26 16:55:30 2009
New Revision: 203844

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=203844
Log:
Make cdr_syslog reload slightly more elegant.

Modified:
    team/seanbright/cdr-syslog/cdr/cdr_syslog.c

Modified: team/seanbright/cdr-syslog/cdr/cdr_syslog.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/seanbright/cdr-syslog/cdr/cdr_syslog.c?view=diff&rev=203844&r1=203843&r2=203844
==============================================================================
--- team/seanbright/cdr-syslog/cdr/cdr_syslog.c (original)
+++ team/seanbright/cdr-syslog/cdr/cdr_syslog.c Fri Jun 26 16:55:30 2009
@@ -119,19 +119,25 @@
 	return 0;
 }
 
-static int load_config(void)
+static int load_config(int reload)
 {
 	struct ast_config *cfg;
-	struct ast_flags config_flags = { 0 };
+	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	int default_facility = LOG_LOCAL4;
 	int default_priority = LOG_INFO;
 	const char *catg = NULL, *tmp;
 
 	cfg = ast_config_load(CONFIG, config_flags);
-	if (!cfg || cfg == CONFIG_STATUS_FILEINVALID) {
+	if (cfg == CONFIG_STATUS_FILEMISSING || cfg == CONFIG_STATUS_FILEINVALID) {
 		ast_log(AST_LOG_ERROR,
 			"Unable to load %s. Not logging custom CSV CDRs to syslog.\n", CONFIG);
 		return -1;
+	} else if (cfg == CONFIG_STATUS_FILEUNCHANGED) {
+		return 0;
+	}
+
+	if (reload) {
+		free_config();
 	}
 
 	if (!(ast_strlen_zero(tmp = ast_variable_retrieve(cfg, "general", "facility")))) {
@@ -240,7 +246,7 @@
 		return AST_MODULE_LOAD_DECLINE;
 	}
 
-	res = load_config();
+	res = load_config(0);
 	AST_RWLIST_UNLOCK(&sinks);
 	if (res) {
 		return AST_MODULE_LOAD_DECLINE;
@@ -258,7 +264,7 @@
 	}
 
 	free_config();
-	res = load_config();
+	res = load_config(1);
 	AST_RWLIST_UNLOCK(&sinks);
 
 	return res ? AST_MODULE_LOAD_DECLINE : AST_MODULE_LOAD_SUCCESS;




More information about the asterisk-commits mailing list