Merged revisions 113874 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 9 Apr 2008 19:00:40 +0000 (19:00 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 9 Apr 2008 19:00:40 +0000 (19:00 +0000)
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
configs/cdr.conf.sample

index cca1e87..6188024 100644 (file)
@@ -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;
 }
index c2882c1..693b280 100644 (file)
 
 [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