From: Timo Sirainen Date: Tue, 6 Nov 2012 21:49:57 +0000 (+0200) Subject: lib-ssl-iostream: Unload ssl_iostream_openssl plugin at exit. X-Git-Tag: 2.2.beta1~114 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8e54934fbcdf59fc329353c3e3cccbaf69b1bf8;p=thirdparty%2Fdovecot%2Fcore.git lib-ssl-iostream: Unload ssl_iostream_openssl plugin at exit. --- diff --git a/src/lib-ssl-iostream/iostream-ssl.c b/src/lib-ssl-iostream/iostream-ssl.c index 71e6bad54d..f8e069691f 100644 --- a/src/lib-ssl-iostream/iostream-ssl.c +++ b/src/lib-ssl-iostream/iostream-ssl.c @@ -4,12 +4,21 @@ #include "module-dir.h" #include "iostream-ssl-private.h" +#include + static bool ssl_module_loaded = FALSE; #ifdef HAVE_SSL static struct module *ssl_module = NULL; #endif static const struct iostream_ssl_vfuncs *ssl_vfuncs = NULL; +#ifdef HAVE_SSL +static void ssl_module_unload(void) +{ + module_dir_unload(&ssl_module); +} +#endif + static int ssl_module_load(void) { #ifdef HAVE_SSL @@ -24,6 +33,8 @@ static int ssl_module_load(void) ssl_vfuncs = module_get_symbol(ssl_module, "ssl_vfuncs"); if (ssl_vfuncs == NULL) i_fatal("%s: ssl_vfuncs symbol not found", plugin_name); + + atexit(ssl_module_unload); ssl_module_loaded = TRUE; return 0; #else