]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Call module's preinit function, when loading
authorSergey Kitov <sergey.kitov@open-xchange.com>
Wed, 18 Apr 2018 10:30:50 +0000 (13:30 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 30 Apr 2018 13:49:27 +0000 (16:49 +0300)
src/lib/module-dir.c

index f01774f06946a61c99afeabc68a6d0e27c8127a1..dfd520fe92cf315fed75b7f59f6f791b460743a1 100644 (file)
@@ -187,6 +187,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;
@@ -243,6 +244,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) {