instead of reverting this supposedly 'stupid' change, let's try to get it working properly

also eliminate a warning from dlopen() because some flags were missing on the second dlopen() call


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41087 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Kevin P. Fleming 19 years ago
parent b56d1a76ce
commit 970c6876c5

@ -387,6 +387,14 @@ static struct ast_module *load_dynamic_module(const char *resource_in, unsigned
on the already-opened library to what we want... if not, we have to on the already-opened library to what we want... if not, we have to
close it and start over close it and start over
*/ */
#if HAVE_RTLD_NOLOAD
if (!dlopen(fn, RTLD_NOLOAD | (wants_global ? RTLD_LAZY | RTLD_GLOBAL : RTLD_NOW | RTLD_LOCAL))) {
ast_log(LOG_WARNING, "%s\n", dlerror());
while (!dlclose(lib));
free(resource_being_loaded);
return NULL;
}
#else
while (!dlclose(lib)); while (!dlclose(lib));
resource_being_loaded = NULL; resource_being_loaded = NULL;
@ -406,6 +414,7 @@ static struct ast_module *load_dynamic_module(const char *resource_in, unsigned
/* since the module was successfully opened, and it registered itself /* since the module was successfully opened, and it registered itself
the previous time we did that, we're going to assume it worked this the previous time we did that, we're going to assume it worked this
time too :) */ time too :) */
#endif
AST_LIST_LAST(&module_list)->lib = lib; AST_LIST_LAST(&module_list)->lib = lib;
resource_being_loaded = NULL; resource_being_loaded = NULL;

Loading…
Cancel
Save