[dovecot-cvs] dovecot/src/lib module-dir.c,1.4,1.5
cras at procontrol.fi
cras at procontrol.fi
Sun May 30 07:56:00 EEST 2004
Update of /home/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv22829/lib
Modified Files:
module-dir.c
Log Message:
Be quiet when we don't want to call init() / deinit() and they don't exist
Index: module-dir.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/module-dir.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- a/module-dir.c 30 May 2004 03:57:15 -0000 1.4
+++ b/module-dir.c 30 May 2004 04:55:58 -0000 1.5
@@ -35,6 +35,14 @@
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 @@
/* 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;
More information about the dovecot-cvs
mailing list