From: Emily Backes Date: Fri, 6 Feb 2015 02:46:24 +0000 (-0800) Subject: ITS#7074 - change olcDatabaseDummy initialization for windows X-Git-Tag: OPENLDAP_REL_ENG_2_4_50~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b8cd201bb7acf6cee1bb3a7392aa27b27279a9d;p=thirdparty%2Fopenldap.git ITS#7074 - change olcDatabaseDummy initialization for windows --- diff --git a/servers/slapd/back-ldap/chain.c b/servers/slapd/back-ldap/chain.c index ec685adea0..0f7bedae03 100644 --- a/servers/slapd/back-ldap/chain.c +++ b/servers/slapd/back-ldap/chain.c @@ -1278,7 +1278,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 @@ -2314,6 +2314,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, diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c index f88ca09b38..7efe705027 100644 --- a/servers/slapd/overlays/pcache.c +++ b/servers/slapd/overlays/pcache.c @@ -3750,7 +3750,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 } }; @@ -5671,6 +5672,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; diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c index c788138416..fdf34d247c 100644 --- a/servers/slapd/overlays/translucent.c +++ b/servers/slapd/overlays/translucent.c @@ -107,7 +107,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() */ @@ -1382,6 +1383,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", 0, 0, 0); translucent.on_bi.bi_type = "translucent";