aboutsummaryrefslogtreecommitdiffstats
path: root/cdr
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-09 19:02:27 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-09 19:02:27 +0000
commite0a3268638ba5ada24d24e1470d3123b13fdfd57 (patch)
tree142b510cac439fcd30bd88b75ba91a1c96fd8a03 /cdr
parent935b697796bfd33ad89c69168348b98a35592872 (diff)
Merged revisions 113875 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r113875 | tilghman | 2008-04-09 14:00:40 -0500 (Wed, 09 Apr 2008) | 12 lines 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: http://svn.digium.com/svn/asterisk/branches/1.6.0@113876 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'cdr')
-rw-r--r--cdr/cdr_csv.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c
index cca1e8714..61880246c 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;
}