changeset 22945:6d6ae8f334f3

lib: Call module's preinit function, when loading
author Sergey Kitov <sergey.kitov@open-xchange.com>
date Wed, 18 Apr 2018 13:30:50 +0300
parents 666f2182826f
children 12c7ddbeae92
files src/lib/module-dir.c
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/module-dir.c	Fri Mar 09 15:17:29 2018 +0200
+++ b/src/lib/module-dir.c	Wed Apr 18 13:30:50 2018 +0300
@@ -187,6 +187,7 @@
 	void *handle;
 	struct module *module;
 	const char *const *module_version;
+	void (*preinit)(void);
 
 	*module_r = NULL;
 	*error_r = NULL;
@@ -243,6 +244,11 @@
 	module->deinit = (void (*)(void))
 		get_symbol(module, t_strconcat(name, "_deinit", NULL),
 			   !set->require_init_funcs);
+	preinit = (void (*)(void))
+		get_symbol(module, t_strconcat(name, "_preinit", NULL),
+			   TRUE);
+	if (preinit != NULL)
+		preinit();
 
 	if ((module->init == NULL || module->deinit == NULL) &&
 	    set->require_init_funcs) {