return ret;
}
+static void *get_symbol(struct module *module, const char *symbol, int quiet)
+{
+ if (quiet)
+ return dlsym(module->handle, symbol);
+
+ return module_get_symbol(module, symbol);
+}
+
static void module_free(struct module *module)
{
if (module->deinit != NULL)
/* get our init func */
init = (void (*)())
- module_get_symbol(module, t_strconcat(name, "_init", NULL));
+ get_symbol(module, t_strconcat(name, "_init", NULL),
+ !require_init_funcs);
module->deinit = init == NULL ? NULL : (void (*)())
- module_get_symbol(module, t_strconcat(name, "_deinit", NULL));
+ get_symbol(module, t_strconcat(name, "_deinit", NULL),
+ !require_init_funcs);
if ((init == NULL || module->deinit == NULL) && require_init_funcs) {
module->deinit = NULL;