diff --git a/conf/xml_cdr.conf.xml b/conf/xml_cdr.conf.xml index 70347ea5e7..df5422a24a 100644 --- a/conf/xml_cdr.conf.xml +++ b/conf/xml_cdr.conf.xml @@ -12,13 +12,13 @@ - - - - - - + + + + + + diff --git a/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c b/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c index a8fa90859a..4a79d1ab54 100644 --- a/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c +++ b/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c @@ -230,9 +230,6 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_xml_cdr_load) return SWITCH_STATUS_TERM; } - globals.log_dir = switch_mprintf("%s/xml_cdr", SWITCH_GLOBAL_dirs.log_dir); - globals.err_log_dir = strdup(globals.log_dir); - if ((settings = switch_xml_child(cfg, "settings"))) { for (param = switch_xml_child(settings, "param"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); @@ -247,21 +244,34 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_xml_cdr_load) } else if (!strcasecmp(var, "retries")) { globals.retries = (uint32_t) atoi(val); } else if (!strcasecmp(var, "log-dir")) { - switch_safe_free(globals.log_dir); - if (switch_is_file_path(val)) { - globals.log_dir = strdup(val); + if (switch_strlen_zero(val)) { + globals.log_dir = switch_mprintf("%s/xml_cdr", SWITCH_GLOBAL_dirs.log_dir); } else { - globals.log_dir = switch_mprintf("%s/%s", SWITCH_GLOBAL_dirs.log_dir, val); + if (switch_is_file_path(val)) { + globals.log_dir = strdup(val); + } else { + globals.log_dir = switch_mprintf("%s/%s", SWITCH_GLOBAL_dirs.log_dir, val); + } } } else if (!strcasecmp(var, "err-log-dir")) { - switch_safe_free(globals.err_log_dir); - if (switch_is_file_path(val)) { - globals.err_log_dir = strdup(val); + if (switch_strlen_zero(val)) { + globals.err_log_dir = switch_mprintf("%s/xml_cdr", SWITCH_GLOBAL_dirs.log_dir); } else { - globals.err_log_dir = switch_mprintf("%s/%s", SWITCH_GLOBAL_dirs.log_dir, val); + if (switch_is_file_path(val)) { + globals.err_log_dir = strdup(val); + } else { + globals.err_log_dir = switch_mprintf("%s/%s", SWITCH_GLOBAL_dirs.log_dir, val); + } } } + if (switch_strlen_zero(globals.err_log_dir)) { + if (!switch_strlen_zero(globals.log_dir)) { + globals.err_log_dir = strdup(globals.log_dir); + } else { + globals.err_log_dir = switch_mprintf("%s/xml_cdr", SWITCH_GLOBAL_dirs.log_dir); + } + } } } if(globals.retries < 0) {