changeset 10858:c9dc5c447db5 HEAD

module_dir_load*(): Added ignore_dlopen_errors flag.
author Timo Sirainen <tss@iki.fi>
date Mon, 08 Mar 2010 17:28:04 +0200
parents 02d4cc578d4b
children b06d874708d4
files src/lib/module-dir.c src/lib/module-dir.h
diffstat 2 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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;
 	}
 
--- 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 {