From ded5ec5b5d4b912a43e4fb2cca0bf613fb83a299 Mon Sep 17 00:00:00 2001
From: Tilghman Lesher <tilghman@meg.abyt.es>
Date: Wed, 9 Apr 2008 19:00:40 +0000
Subject: [PATCH] Merged revisions 113874 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113874 | tilghman | 2008-04-09 13:57:33 -0500 (Wed, 09 Apr 2008) | 4 lines

If the [csv] section does not exist in cdr.conf, then an unload/load sequence
is needed to correct the problem.  Track whether the load succeeded with a
variable, so we can fix this with a simple reload event, instead.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@113875 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 cdr/cdr_csv.c           | 16 +++++++++++++---
 configs/cdr.conf.sample |  4 ++--
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c
index cca1e87144..61880246cc 100644
--- a/cdr/cdr_csv.c
+++ b/cdr/cdr_csv.c
@@ -50,6 +50,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 static int usegmtime = 0;
 static int loguniqueid = 0;
 static int loguserfield = 0;
+static int loaded = 0;
 static char *config = "cdr.conf";
 
 /* #define CSV_LOGUNIQUEID 1 */
@@ -316,6 +317,7 @@ static int csv_log(struct ast_cdr *cdr)
 static int unload_module(void)
 {
 	ast_cdr_unregister(name);
+	loaded = 0;
 	return 0;
 }
 
@@ -326,15 +328,23 @@ static int load_module(void)
 	if(!load_config(0))
 		return AST_MODULE_LOAD_DECLINE;
 
-	if ((res = ast_cdr_register(name, ast_module_info->description, csv_log)))
+	if ((res = ast_cdr_register(name, ast_module_info->description, csv_log))) {
 		ast_log(LOG_ERROR, "Unable to register CSV CDR handling\n");
-
+	} else {
+		loaded = 1;
+	}
 	return res;
 }
 
 static int reload(void)
 {
-	load_config(1);
+	if (load_config(1)) {
+		loaded = 1;
+	} else {
+		loaded = 0;
+		ast_log(LOG_WARNING, "No [csv] section in cdr.conf.  Unregistering backend.\n");
+		ast_cdr_unregister(name);
+	}
 
 	return 0;
 }
diff --git a/configs/cdr.conf.sample b/configs/cdr.conf.sample
index c2882c1f0d..693b280928 100644
--- a/configs/cdr.conf.sample
+++ b/configs/cdr.conf.sample
@@ -136,8 +136,8 @@
 
 [csv]
 usegmtime=yes    ; log date/time in GMT.  Default is "no"
-loguniqueid=yes  ; log uniqueid.  Default is "no
-loguserfield=yes ; log user field.  Default is "no
+loguniqueid=yes  ; log uniqueid.  Default is "no"
+loguserfield=yes ; log user field.  Default is "no"
 
 ;[radius]
 ;usegmtime=yes    ; log date/time in GMT
-- 
GitLab