]> git.sur5r.net Git - openldap/commitdiff
ITS#6030
authorQuanah Gibson-Mount <quanah@openldap.org>
Tue, 24 Mar 2009 19:08:43 +0000 (19:08 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Tue, 24 Mar 2009 19:08:43 +0000 (19:08 +0000)
CHANGES
servers/slapd/module.c

diff --git a/CHANGES b/CHANGES
index 8278466aa853cbfce560890547fe7b0e291bd361..e8b136a3bc12b92b3e0045c5f0757e6e6bed9d1e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,7 @@ OpenLDAP 2.4.16 Release (2009/03/20)
        Fixed slapd backglue with empty DBs (ITS#5986)
        Fixed slapd ctxcsn race condition (ITS#6001)
        Fixed slapd debug message (ITS#6027)
+       Fixed slapd redundant module loading (ITS#6030)
        Fixed slapd syncrepl newCookie sync messages (ITS#5972)
        Fixed slapd syncrepl hang during shutdown (ITS#6011)
        Fixed slapd syncrepl too many MMR messages (ITS#6020)
index 25f5f3ae92477321873ede44dab03aaf82740114..a09da6a8b6dd530ad28515b9326384a5f1dfe991 100644 (file)
@@ -119,7 +119,7 @@ int module_unload( const char *file_name )
 
 int module_load(const char* file_name, int argc, char *argv[])
 {
-       module_loaded_t *module = NULL;
+       module_loaded_t *module;
        const char *error;
        int rc;
        MODULE_INIT_FN initialize;
@@ -129,6 +129,13 @@ int module_load(const char* file_name, int argc, char *argv[])
 #define        file    file_name
 #endif
 
+       module = module_handle( file_name );
+       if ( module ) {
+               Debug( LDAP_DEBUG_ANY, "module_load: (%s) already loaded\n",
+                       file_name, 0, 0 );
+               return -1;
+       }
+
        module = (module_loaded_t *)ch_calloc(1, sizeof(module_loaded_t) +
                strlen(file_name));
        if (module == NULL) {