Mercurial > dovecot > original-hg > dovecot-1.2
changeset 9101:6fd725b94504 HEAD
expire-tool: Load plugins from mail_plugins setting.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 31 May 2009 19:59:47 -0400 |
parents | f144ef760714 |
children | 531083e6e84a |
files | src/plugins/expire/Makefile.am src/plugins/expire/expire-tool.c |
diffstat | 2 files changed, 21 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/expire/Makefile.am Sun May 31 19:48:46 2009 -0400 +++ b/src/plugins/expire/Makefile.am Sun May 31 19:59:47 2009 -0400 @@ -9,7 +9,8 @@ -I$(top_srcdir)/src/lib-index \ -I$(top_srcdir)/src/lib-storage \ -I$(top_srcdir)/src/lib-storage/index \ - -DPKG_RUNDIR=\""$(rundir)"\" + -DPKG_RUNDIR=\""$(rundir)"\" \ + -DMODULEDIR=\""$(moduledir)"\" lib20_expire_plugin_la_LDFLAGS = -module -avoid-version @@ -37,7 +38,8 @@ expire_tool_LDADD = \ $(libs) \ - $(LIBICONV) + $(LIBICONV) \ + $(MODULE_LIBS) expire_tool_DEPENDENCIES = $(libs)
--- a/src/plugins/expire/expire-tool.c Sun May 31 19:48:46 2009 -0400 +++ b/src/plugins/expire/expire-tool.c Sun May 31 19:59:47 2009 -0400 @@ -6,6 +6,7 @@ #include "file-lock.h" #include "randgen.h" #include "lib-signals.h" +#include "module-dir.h" #include "dict.h" #include "mail-index.h" #include "mail-search-build.h" @@ -37,6 +38,7 @@ uid_t global_mail_uid; gid_t global_mail_gid; static struct env_backup *env_backup; +static struct module *modules; static int user_init(struct expire_context *ctx, const char *user) { @@ -230,6 +232,21 @@ const char *userp, *mailbox; int ret; + if (getenv("MAIL_PLUGINS") == NULL) + modules = NULL; + else { + const char *plugin_dir = getenv("MAIL_PLUGIN_DIR"); + const char *version; + + if (plugin_dir == NULL) + plugin_dir = MODULEDIR"/lda"; + + version = getenv("VERSION_IGNORE") != NULL ? + NULL : PACKAGE_VERSION; + modules = module_dir_load(plugin_dir, getenv("MAIL_PLUGINS"), + TRUE, version); + } + dict_drivers_register_builtin(); mail_users_init(getenv("AUTH_SOCKET_PATH"), getenv("DEBUG") != NULL); mail_storage_init();