From: Timo Sirainen Date: Mon, 8 Mar 2010 15:28:04 +0000 (+0200) Subject: module_dir_load*(): Added ignore_dlopen_errors flag. X-Git-Tag: 2.0.beta4~110 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5510952e54f0f20294ff65127c0417f66f256944;p=thirdparty%2Fdovecot%2Fcore.git module_dir_load*(): Added ignore_dlopen_errors flag. --HG-- branch : HEAD --- diff --git a/src/lib/module-dir.c b/src/lib/module-dir.c index d88713fca6..23e8afb819 100644 --- a/src/lib/module-dir.c +++ b/src/lib/module-dir.c @@ -107,7 +107,8 @@ module_load(const char *path, const char *name, 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 --git a/src/lib/module-dir.h b/src/lib/module-dir.h index 9d19331713..4a55530921 100644 --- a/src/lib/module-dir.h +++ b/src/lib/module-dir.h @@ -10,6 +10,8 @@ struct module_dir_load_settings { 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 {