[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