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) {