Clean up cdr.conf parsing for [csv] section
authorPaul Belanger <paul.belanger@polybeacon.com>
Tue, 13 Sep 2011 14:25:43 +0000 (14:25 +0000)
committerPaul Belanger <paul.belanger@polybeacon.com>
Tue, 13 Sep 2011 14:25:43 +0000 (14:25 +0000)
Review: https://reviewboard.asterisk.org/r/1427/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@335556 65c4cc65-6c06-0410-ace0-fbb531ad65f3

UPGRADE.txt
cdr/cdr_csv.c

index e337850..3aa6cb3 100644 (file)
@@ -32,7 +32,7 @@ Configuration Files:
    parses configuration files.  This makes configuration files more consistent
    with what is expected across modules.
 
-   - cdr.conf: [general] section
+   - cdr.conf: [general] and [csv] sections
    - dnsmgr.conf
 
 SIP
index 068b7a9..b629290 100644 (file)
@@ -50,7 +50,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define DATE_FORMAT "%Y-%m-%d %T"
 
 static int usegmtime = 0;
-static int accountlogs;
+static int accountlogs = 1;
 static int loguniqueid = 0;
 static int loguserfield = 0;
 static int loaded = 0;
@@ -95,52 +95,38 @@ AST_MUTEX_DEFINE_STATIC(acf_lock);
 static int load_config(int reload)
 {
        struct ast_config *cfg;
-       struct ast_variable *var;
-       const char *tmp;
+       struct ast_variable *v;
        struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 
        if (!(cfg = ast_config_load(config, config_flags)) || cfg == CONFIG_STATUS_FILEINVALID) {
                ast_log(LOG_WARNING, "unable to load config: %s\n", config);
                return 0;
-       } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+       } else if (cfg == CONFIG_STATUS_FILEUNCHANGED) {
                return 1;
+       }
 
        accountlogs = 1;
        usegmtime = 0;
        loguniqueid = 0;
        loguserfield = 0;
 
-       if (!(var = ast_variable_browse(cfg, "csv"))) {
+       if (!(v = ast_variable_browse(cfg, "csv"))) {
                ast_config_destroy(cfg);
                return 0;
        }
 
-       if ((tmp = ast_variable_retrieve(cfg, "csv", "usegmtime"))) {
-               usegmtime = ast_true(tmp);
-               if (usegmtime)
-                       ast_debug(1, "logging time in GMT\n");
-       }
-
-       /* Turn on/off separate files per accountcode. Default is on (as before) */
-       if ((tmp = ast_variable_retrieve(cfg, "csv", "accountlogs"))) {
-               accountlogs = ast_true(tmp);
-               if (accountlogs) {
-                       ast_debug(1, "logging in separate files per accountcode\n");
-               }
-       }
-
-       if ((tmp = ast_variable_retrieve(cfg, "csv", "loguniqueid"))) {
-               loguniqueid = ast_true(tmp);
-               if (loguniqueid)
-                       ast_debug(1, "logging CDR field UNIQUEID\n");
-       }
-
-       if ((tmp = ast_variable_retrieve(cfg, "csv", "loguserfield"))) {
-               loguserfield = ast_true(tmp);
-               if (loguserfield)
-                       ast_debug(1, "logging CDR user-defined field\n");
+       for (; v; v = v->next) {
+               if (!strcasecmp(v->name, "usegmtime")) {
+                       usegmtime = ast_true(v->value);
+               } else if (!strcasecmp(v->name, "accountlogs")) {
+                       /* Turn on/off separate files per accountcode. Default is on (as before) */
+                       accountlogs = ast_true(v->value);
+               } else if (!strcasecmp(v->name, "loguniqueid")) {
+                       loguniqueid = ast_true(v->value);
+               } else if (!strcasecmp(v->name, "loguserfield")) {
+                       loguserfield = ast_true(v->value);
+               }
        }
-
        ast_config_destroy(cfg);
        return 1;
 }
@@ -337,8 +323,9 @@ static int load_module(void)
 {
        int res;
 
-       if(!load_config(0))
+       if (!load_config(0)) {
                return AST_MODULE_LOAD_DECLINE;
+       }
 
        if ((res = ast_cdr_register(name, ast_module_info->description, csv_log))) {
                ast_log(LOG_ERROR, "Unable to register CSV CDR handling\n");