From: Timo Sirainen Date: Sun, 30 May 2004 04:55:58 +0000 (+0300) Subject: Be quiet when we don't want to call init() / deinit() and they don't exist X-Git-Tag: 1.1.alpha1~4016 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b371372ac6aec848b3616d9a38e8844dec28dd02;p=thirdparty%2Fdovecot%2Fcore.git Be quiet when we don't want to call init() / deinit() and they don't exist --HG-- branch : HEAD --- diff --git a/src/lib/module-dir.c b/src/lib/module-dir.c index e159c9058e..37f7e71358 100644 --- a/src/lib/module-dir.c +++ b/src/lib/module-dir.c @@ -35,6 +35,14 @@ void *module_get_symbol(struct module *module, const char *symbol) 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) @@ -66,9 +74,11 @@ module_load(const char *path, const char *name, int require_init_funcs) /* 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;