dovecot-2.0: module_dir_load*(): Added ignore_dlopen_errors flag.

dovecot at dovecot.org dovecot at dovecot.org
Mon Mar 8 17:29:24 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/c9dc5c447db5
changeset: 10858:c9dc5c447db5
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Mar 08 17:28:04 2010 +0200
description:
module_dir_load*(): Added ignore_dlopen_errors flag.

diffstat:

 src/lib/module-dir.c |  3 ++-
 src/lib/module-dir.h |  2 ++
 2 files changed, 4 insertions(+), 1 deletions(-)

diffs (25 lines):

diff -r 02d4cc578d4b -r c9dc5c447db5 src/lib/module-dir.c
--- a/src/lib/module-dir.c	Mon Mar 08 17:27:26 2010 +0200
+++ b/src/lib/module-dir.c	Mon Mar 08 17:28:04 2010 +0200
@@ -107,7 +107,8 @@
 
 	handle = dlopen(path, RTLD_GLOBAL | RTLD_NOW);
 	if (handle == NULL) {
-		i_error("dlopen(%s) failed: %s", path, dlerror());
+		if (!set->ignore_dlopen_errors)
+			i_error("dlopen(%s) failed: %s", path, dlerror());
 		return NULL;
 	}
 
diff -r 02d4cc578d4b -r c9dc5c447db5 src/lib/module-dir.h
--- a/src/lib/module-dir.h	Mon Mar 08 17:27:26 2010 +0200
+++ b/src/lib/module-dir.h	Mon Mar 08 17:28:04 2010 +0200
@@ -10,6 +10,8 @@
 	unsigned int require_init_funcs:1;
 	/* Enable debug logging */
 	unsigned int debug:1;
+	/* If dlopen() fails for some modules, silently skip it. */
+	unsigned int ignore_dlopen_errors:1;
 };
 
 struct module {


More information about the dovecot-cvs mailing list