summaryrefslogtreecommitdiff
path: root/res/res_config_odbc.c
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2011-09-01 17:31:34 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2011-09-01 17:31:34 +0000
commite68be706466edac5a0689edf1cca708b4d7364c7 (patch)
tree6b1a01fb153e09cdc1f60d67e669a266a15570a4 /res/res_config_odbc.c
parent9dd15059f6077903726e020895837bae4a3bf13a (diff)
Merged revisions 334230 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10 ................ r334230 | tilghman | 2011-09-01 12:30:19 -0500 (Thu, 01 Sep 2011) | 25 lines Merged revisions 334229 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r334229 | tilghman | 2011-09-01 12:28:09 -0500 (Thu, 01 Sep 2011) | 18 lines Create a local alias for ast_odbc_clear_cache. As a function pointer, the reference has to be resolved at load time irrespective of the RTLD_LAZY flag. Creating a local alias solves this problem, because the structure is initialized with that local function pointer, while the actual function can remain lazily linked until runtime. The reason why this is important is because we lazily load function references during the module loading process, in order to obtain priority values for each module, ensuring that modules are loaded in the correct order. Previous to this change, when this module was initially loaded, the module loader would emit a symbol resolution error, because of the above requirement. Closes ASTERISK-18399 (reported by Mikael Carlsson, fix suggested by Walter Doekes, patch by me) ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@334231 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_config_odbc.c')
-rw-r--r--res/res_config_odbc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/res/res_config_odbc.c b/res/res_config_odbc.c
index fc2b8fa1b..7bd0889c4 100644
--- a/res/res_config_odbc.c
+++ b/res/res_config_odbc.c
@@ -1131,6 +1131,11 @@ static int require_odbc(const char *database, const char *table, va_list ap)
#undef warn_length
#undef warn_type
+static int unload_odbc(const char *a, const char *b)
+{
+ return ast_odbc_clear_cache(a, b);
+}
+
static struct ast_config_engine odbc_engine = {
.name = "odbc",
.load_func = config_odbc,
@@ -1141,7 +1146,7 @@ static struct ast_config_engine odbc_engine = {
.update_func = update_odbc,
.update2_func = update2_odbc,
.require_func = require_odbc,
- .unload_func = ast_odbc_clear_cache,
+ .unload_func = unload_odbc,
};
static int unload_module (void)