Skip to content
Snippets Groups Projects
Commit b190d76f authored by Tilghman Lesher's avatar Tilghman Lesher
Browse files

Merged revisions 279410 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r279410 | tilghman | 2010-07-25 13:21:27 -0500 (Sun, 25 Jul 2010) | 8 lines
  
  Don't re-register CDR module on reload.
  
  (closes issue #17304)
   Reported by: jnemeth
   Patches: 
         20100507__issue17304.diff.txt uploaded by tilghman (license 14)
   Tested by: jnemeth
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@279413 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 046a2dc3
No related branches found
No related tags found
No related merge requests found
......@@ -54,6 +54,7 @@ enum {
CONFIG_USEGMTIME = 1 << 1,
CONFIG_DISPOSITIONSTRING = 1 << 2,
CONFIG_HRTIME = 1 << 3,
CONFIG_REGISTERED = 1 << 4,
};
static struct ast_flags config = { 0 };
......@@ -242,14 +243,24 @@ static int odbc_load_module(int reload)
ast_verb(3, "cdr_odbc: dsn is %s\n", dsn);
ast_verb(3, "cdr_odbc: table is %s\n", table);
res = ast_cdr_register(name, ast_module_info->description, odbc_log);
if (res) {
ast_log(LOG_ERROR, "cdr_odbc: Unable to register ODBC CDR handling\n");
if (!ast_test_flag(&config, CONFIG_REGISTERED)) {
res = ast_cdr_register(name, ast_module_info->description, odbc_log);
if (res) {
ast_log(LOG_ERROR, "cdr_odbc: Unable to register ODBC CDR handling\n");
} else {
ast_set_flag(&config, CONFIG_REGISTERED);
}
}
} while (0);
if (cfg && cfg != CONFIG_STATUS_FILEUNCHANGED && cfg != CONFIG_STATUS_FILEINVALID)
if (ast_test_flag(&config, CONFIG_REGISTERED) && (!cfg || dsn == NULL || table == NULL)) {
ast_cdr_unregister(name);
ast_clear_flag(&config, CONFIG_REGISTERED);
}
if (cfg && cfg != CONFIG_STATUS_FILEUNCHANGED && cfg != CONFIG_STATUS_FILEINVALID) {
ast_config_destroy(cfg);
}
return res;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment