From dd9405db057da671c115619c9a5f8082ede2e134 Mon Sep 17 00:00:00 2001 From: Terry Wilson Date: Wed, 28 Mar 2012 19:39:24 +0000 Subject: [PATCH] Fix setting CDR variables in the hangup extension A previous CDR fix for setting CDR variables during a bridge via custom dialplan features broke setting CDR variables in the hangup extension. This patch fixes the issue. Review: https://reviewboard.asterisk.org/r/1794/ ........ Merged revisions 358978 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358989 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@360724 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- addons/cdr_mysql.c | 2 ++ addons/chan_ooh323.c | 4 ++++ apps/confbridge/conf_config_parser.c | 1 + cdr/cdr_adaptive_odbc.c | 1 + channels/chan_gtalk.c | 1 + channels/chan_jingle.c | 1 + 6 files changed, 10 insertions(+) diff --git a/addons/cdr_mysql.c b/addons/cdr_mysql.c index ecdfaea0bd..445f9e3d05 100644 --- a/addons/cdr_mysql.c +++ b/addons/cdr_mysql.c @@ -462,6 +462,7 @@ static int my_load_module(int reload) if (reload) { AST_RWLIST_UNLOCK(&columns); } + ast_config_destroy(cfg); return AST_MODULE_LOAD_SUCCESS; } @@ -502,6 +503,7 @@ static int my_load_module(int reload) if (reload) { AST_RWLIST_UNLOCK(&columns); } + ast_config_destroy(cfg); return AST_MODULE_LOAD_FAILURE; } diff --git a/addons/chan_ooh323.c b/addons/chan_ooh323.c index 129a916fad..f229e8693d 100644 --- a/addons/chan_ooh323.c +++ b/addons/chan_ooh323.c @@ -2720,6 +2720,7 @@ int reload_config(int reload) ast_copy_string(gIP, v->value, sizeof(gIP)); if (ast_parse_arg(v->value, PARSE_ADDR, &bindaddr)) { ast_log(LOG_WARNING, "Invalid address: %s\n", v->value); + ast_config_destroy(cfg); return 1; } if (ast_sockaddr_is_ipv6(&bindaddr)) { @@ -2773,6 +2774,7 @@ int reload_config(int reload) pNewAlias = ast_calloc(1, sizeof(struct ooAliases)); if (!pNewAlias) { ast_log(LOG_ERROR, "Failed to allocate memory for h323id alias\n"); + ast_config_destroy(cfg); return 1; } if (gAliasList == NULL) { /* first h323id - set as callerid if callerid is not set */ @@ -2787,6 +2789,7 @@ int reload_config(int reload) pNewAlias = ast_calloc(1, sizeof(struct ooAliases)); if (!pNewAlias) { ast_log(LOG_ERROR, "Failed to allocate memory for e164 alias\n"); + ast_config_destroy(cfg); return 1; } pNewAlias->type = T_H225AliasAddress_dialedDigits; @@ -2798,6 +2801,7 @@ int reload_config(int reload) pNewAlias = ast_calloc(1, sizeof(struct ooAliases)); if (!pNewAlias) { ast_log(LOG_ERROR, "Failed to allocate memory for email alias\n"); + ast_config_destroy(cfg); return 1; } pNewAlias->type = T_H225AliasAddress_email_ID; diff --git a/apps/confbridge/conf_config_parser.c b/apps/confbridge/conf_config_parser.c index 0ae9ada94b..d3a75c5f6b 100644 --- a/apps/confbridge/conf_config_parser.c +++ b/apps/confbridge/conf_config_parser.c @@ -1311,6 +1311,7 @@ int conf_load_config(int reload) } remove_all_delme(); + ast_config_destroy(cfg); return 0; } diff --git a/cdr/cdr_adaptive_odbc.c b/cdr/cdr_adaptive_odbc.c index 70e1aea712..3f4c78654f 100644 --- a/cdr/cdr_adaptive_odbc.c +++ b/cdr/cdr_adaptive_odbc.c @@ -286,6 +286,7 @@ static int load_config(void) else ast_free(tableptr); } + ast_config_destroy(cfg); return res; } diff --git a/channels/chan_gtalk.c b/channels/chan_gtalk.c index dcc3c4893b..95cbe238d4 100644 --- a/channels/chan_gtalk.c +++ b/channels/chan_gtalk.c @@ -2286,6 +2286,7 @@ static int gtalk_load_config(void) cat = ast_category_browse(cfg, cat); } + ast_config_destroy(cfg); gtalk_update_externip(); gtalk_free_candidates(global_candidates); return 1; diff --git a/channels/chan_jingle.c b/channels/chan_jingle.c index 32c53bb5e4..48cc550032 100644 --- a/channels/chan_jingle.c +++ b/channels/chan_jingle.c @@ -1926,6 +1926,7 @@ static int jingle_load_config(void) } cat = ast_category_browse(cfg, cat); } + ast_config_destroy(cfg); jingle_free_candidates(global_candidates); return 1; }