Mercurial > dovecot > core-2.2
changeset 3988:ab1a0a377851 HEAD
Added module_dir_deinit().
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 05 Feb 2006 16:14:12 +0200 |
parents | 9099825aac9a |
children | e93e39326ae1 |
files | src/lib/module-dir.c src/lib/module-dir.h |
diffstat | 2 files changed, 20 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/module-dir.c Sun Feb 05 15:33:23 2006 +0200 +++ b/src/lib/module-dir.c Sun Feb 05 16:14:12 2006 +0200 @@ -187,6 +187,18 @@ return modules; } +void module_dir_deinit(struct module *modules) +{ + struct module *module; + + for (module = modules; module != NULL; module = module->next) { + if (module->deinit != NULL) { + module->deinit(); + module->deinit = NULL; + } + } +} + void module_dir_unload(struct module **modules) { struct module *module, *next; @@ -208,7 +220,11 @@ return NULL; } -void module_dir_unload(struct module *modules __attr_unused__) +void module_dir_deinit(struct module *modules __attr_unused__) +{ +} + +void module_dir_unload(struct module **modules __attr_unused__) { }
--- a/src/lib/module-dir.h Sun Feb 05 15:33:23 2006 +0200 +++ b/src/lib/module-dir.h Sun Feb 05 16:14:12 2006 +0200 @@ -12,6 +12,9 @@ /* Load all modules in given directory. */ struct module *module_dir_load(const char *dir, bool require_init_funcs); +/* Call deinit() in all modules and mark them NULL so module_dir_unload() + won't do it again. */ +void module_dir_deinit(struct module *modules); /* Unload all modules */ void module_dir_unload(struct module **modules);