diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2008-04-09 19:00:40 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2008-04-09 19:00:40 +0000 |
commit | ded5ec5b5d4b912a43e4fb2cca0bf613fb83a299 (patch) | |
tree | 30c67b3c2ef9cf76decfe92d3443f9e3f9ec77c2 /cdr/cdr_csv.c | |
parent | 0351ef6e6ec0999163a3ea6585ce9bd2e5bafcdb (diff) |
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: https://origsvn.digium.com/svn/asterisk/trunk@113875 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'cdr/cdr_csv.c')
-rw-r--r-- | cdr/cdr_csv.c | 16 |
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; } |