From: Sergey Kitov Date: Wed, 18 Apr 2018 10:30:50 +0000 (+0300) Subject: lib: Call module's preinit function, when loading X-Git-Tag: 2.3.2.rc1~124 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7c5a38b489c088b7f1a7afb252f4c34d4297075c;p=thirdparty%2Fdovecot%2Fcore.git lib: Call module's preinit function, when loading --- diff --git a/src/lib/module-dir.c b/src/lib/module-dir.c index 674f5c3255..d55340c5f0 100644 --- a/src/lib/module-dir.c +++ b/src/lib/module-dir.c @@ -188,6 +188,7 @@ module_load(const char *path, const char *name, void *handle; struct module *module; const char *const *module_version; + void (*preinit)(void); *module_r = NULL; *error_r = NULL; @@ -244,6 +245,11 @@ module_load(const char *path, const char *name, 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) {