]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#7074 - change olcDatabaseDummy initialization for windows
authorEmily Backes <ebackes@symas.com>
Fri, 6 Feb 2015 02:46:24 +0000 (18:46 -0800)
committerQuanah Gibson-Mount <quanah@openldap.org>
Fri, 20 Mar 2020 19:08:22 +0000 (19:08 +0000)
servers/slapd/back-ldap/chain.c
servers/slapd/overlays/pcache.c
servers/slapd/overlays/translucent.c

index b9b9c257bf3916e91d852fd05d26cff514005496..c61d30968675283256f6400fe673d0ceac5c7671 100644 (file)
@@ -1282,7 +1282,7 @@ static ConfigOCs chainocs[] = {
                "NAME 'olcChainDatabase' "
                "DESC 'Chain remote server configuration' "
                "AUXILIARY )",
-               Cft_Misc, olcDatabaseDummy, chain_ldadd
+               Cft_Misc, NULL, chain_ldadd
 #ifdef SLAP_CONFIG_DELETE
                , NULL, chain_lddel
 #endif
@@ -2318,6 +2318,12 @@ chain_initialize( void )
        /* Make sure we don't exceed the bits reserved for userland */
        config_check_userland( CH_LAST );
 
+       /* olcDatabaseDummy is defined in slapd, and Windows
+          will not let us initialize a struct element with a data pointer
+          from another library, so we have to initialize this element
+          "by hand".  */
+       chainocs[1].co_table = olcDatabaseDummy;
+
 #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR
        rc = register_supported_control( LDAP_CONTROL_X_CHAINING_BEHAVIOR,
                        /* SLAP_CTRL_GLOBAL| */ SLAP_CTRL_ACCESS|SLAP_CTRL_HIDE, NULL,
index a704d0def839f929eb3f7046aafe2d6ec25f0409..10a711c7c315597aa76fd34360e1a9f7da7394df 100644 (file)
@@ -3752,7 +3752,8 @@ static ConfigOCs pcocs[] = {
        { "( OLcfgOvOc:2.2 "
                "NAME 'olcPcacheDatabase' "
                "DESC 'Cache database configuration' "
-               "AUXILIARY )", Cft_Misc, olcDatabaseDummy, pc_ldadd },
+               /* co_table is initialized in pcache_initialize */
+               "AUXILIARY )", Cft_Misc, NULL, pc_ldadd },
        { NULL, 0, NULL }
 };
 
@@ -5669,6 +5670,13 @@ pcache_initialize()
        ConfigArgs c;
        char *argv[ 4 ];
 
+        /* olcDatabaseDummy is defined in slapd, and Windows
+           will not let us initialize a struct element with a data pointer
+           from another library, so we have to initialize this element
+           "by hand".  */
+        pcocs[1].co_table = olcDatabaseDummy;
+
+
        code = slap_loglevel_get( &debugbv, &pcache_debug );
        if ( code ) {
                return code;
index 22fdd4485709fa27cd489186a8b6193449bdb00f..5d00645f48244ed4fdd86742ed809816b4bd34da 100644 (file)
@@ -113,7 +113,8 @@ static ConfigOCs translucentocs[] = {
        { "( OLcfgOvOc:14.2 "
          "NAME 'olcTranslucentDatabase' "
          "DESC 'Translucent target database configuration' "
-         "AUXILIARY )", Cft_Misc, olcDatabaseDummy, translucent_ldadd },
+       /* co_table is initialized in translucent_initialize() */
+         "AUXILIARY )", Cft_Misc, NULL, translucent_ldadd },
        { NULL, 0, NULL }
 };
 /* for translucent_init() */
@@ -1388,6 +1389,12 @@ int translucent_initialize() {
 
        int rc;
 
+       /* olcDatabaseDummy is defined in slapd, and Windows
+          will not let us initialize a struct element with a data pointer
+          from another library, so we have to initialize this element
+          "by hand".  */
+       translucentocs[1].co_table = olcDatabaseDummy;
+
        Debug(LDAP_DEBUG_TRACE, "==> translucent_initialize\n" );
 
        translucent.on_bi.bi_type       = "translucent";