dovecot-1.2: expire-tool: Load plugins from mail_plugins setting.

dovecot at dovecot.org dovecot at dovecot.org
Mon Jun 1 02:59:51 EEST 2009


details:   http://hg.dovecot.org/dovecot-1.2/rev/6fd725b94504
changeset: 9101:6fd725b94504
user:      Timo Sirainen <tss at iki.fi>
date:      Sun May 31 19:59:47 2009 -0400
description:
expire-tool: Load plugins from mail_plugins setting.

diffstat:

2 files changed, 21 insertions(+), 2 deletions(-)
src/plugins/expire/Makefile.am   |    6 ++++--
src/plugins/expire/expire-tool.c |   17 +++++++++++++++++

diffs (64 lines):

diff -r f144ef760714 -r 6fd725b94504 src/plugins/expire/Makefile.am
--- 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 @@ AM_CPPFLAGS = \
 	-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 @@ libs = \
 
 expire_tool_LDADD = \
 	$(libs) \
-	$(LIBICONV)
+	$(LIBICONV) \
+	$(MODULE_LIBS)
 
 expire_tool_DEPENDENCIES = $(libs)
 
diff -r f144ef760714 -r 6fd725b94504 src/plugins/expire/expire-tool.c
--- 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;
 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 @@ static void expire_run(bool testrun)
 	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();


More information about the dovecot-cvs mailing list