268 lines
8.0 KiB
Plaintext
268 lines
8.0 KiB
Plaintext
Index: servers/slapd/overlays/translucent.c
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/overlays/translucent.c,v
|
|
retrieving revision 1.54
|
|
retrieving revision 1.55
|
|
diff -u -r1.54 -r1.55
|
|
--- servers/slapd/overlays/translucent.c 6 Oct 2008 23:59:52 -0000 1.54
|
|
+++ servers/slapd/overlays/translucent.c 12 Oct 2008 18:20:47 -0000 1.55
|
|
@@ -95,14 +95,6 @@
|
|
{ NULL, NULL, 0, 0, 0, ARG_IGNORED }
|
|
};
|
|
|
|
-static ConfigTable transdummy[] = {
|
|
- { "", "", 0, 0, 0, ARG_IGNORED,
|
|
- NULL, "( OLcfgGlAt:13 NAME 'olcDatabase' "
|
|
- "DESC 'The backend type for a database instance' "
|
|
- "SUP olcBackend SINGLE-VALUE X-ORDERED 'SIBLINGS' )", NULL, NULL },
|
|
- { NULL, NULL, 0, 0, 0, ARG_IGNORED }
|
|
-};
|
|
-
|
|
static ConfigOCs translucentocs[] = {
|
|
{ "( OLcfgOvOc:14.1 "
|
|
"NAME 'olcTranslucentConfig' "
|
|
@@ -115,7 +107,7 @@
|
|
{ "( OLcfgOvOc:14.2 "
|
|
"NAME 'olcTranslucentDatabase' "
|
|
"DESC 'Translucent target database configuration' "
|
|
- "AUXILIARY )", Cft_Misc, transdummy, translucent_ldadd },
|
|
+ "AUXILIARY )", Cft_Misc, olcDatabaseDummy, translucent_ldadd },
|
|
{ NULL, 0, NULL }
|
|
};
|
|
/* for translucent_init() */
|
|
Index: servers/slapd/overlays/pcache.c
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/overlays/pcache.c,v
|
|
retrieving revision 1.153
|
|
retrieving revision 1.154
|
|
diff -u -r1.153 -r1.154
|
|
--- servers/slapd/overlays/pcache.c 4 Sep 2008 05:43:19 -0000 1.153
|
|
+++ servers/slapd/overlays/pcache.c 12 Oct 2008 18:20:47 -0000 1.154
|
|
@@ -2655,15 +2655,6 @@
|
|
{ NULL, NULL, 0, 0, 0, ARG_IGNORED }
|
|
};
|
|
|
|
-/* Need to no-op this keyword for dynamic config */
|
|
-static ConfigTable pcdummy[] = {
|
|
- { "", "", 0, 0, 0, ARG_IGNORED,
|
|
- NULL, "( OLcfgGlAt:13 NAME 'olcDatabase' "
|
|
- "DESC 'The backend type for a database instance' "
|
|
- "SUP olcBackend SINGLE-VALUE X-ORDERED 'SIBLINGS' )", NULL, NULL },
|
|
- { NULL, NULL, 0, 0, 0, ARG_IGNORED }
|
|
-};
|
|
-
|
|
static ConfigOCs pcocs[] = {
|
|
{ "( OLcfgOvOc:2.1 "
|
|
"NAME 'olcPcacheConfig' "
|
|
@@ -2675,7 +2666,7 @@
|
|
{ "( OLcfgOvOc:2.2 "
|
|
"NAME 'olcPcacheDatabase' "
|
|
"DESC 'Cache database configuration' "
|
|
- "AUXILIARY )", Cft_Misc, pcdummy, pc_ldadd },
|
|
+ "AUXILIARY )", Cft_Misc, olcDatabaseDummy, pc_ldadd },
|
|
{ NULL, 0, NULL }
|
|
};
|
|
|
|
@@ -3995,11 +3986,6 @@
|
|
code = config_register_schema( pccfg, pcocs );
|
|
if ( code ) return code;
|
|
|
|
- {
|
|
- const char *text;
|
|
- code = slap_str2ad( "olcDatabase", &pcdummy[0].ad, &text );
|
|
- if ( code ) return code;
|
|
- }
|
|
return overlay_register( &pcache );
|
|
}
|
|
|
|
Index: servers/slapd/back-monitor/database.c
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-monitor/database.c,v
|
|
retrieving revision 1.97
|
|
retrieving revision 1.98
|
|
diff -u -r1.97 -r1.98
|
|
--- servers/slapd/back-monitor/database.c 26 May 2008 18:53:16 -0000 1.97
|
|
+++ servers/slapd/back-monitor/database.c 12 Oct 2008 18:20:46 -0000 1.98
|
|
@@ -160,12 +160,12 @@
|
|
"monitor_subsys_database_init: "
|
|
"missing suffix for %s\n",
|
|
rdnval, 0, 0 );
|
|
- return -1;
|
|
- }
|
|
- attr_merge( e, slap_schema.si_ad_namingContexts,
|
|
+ } else {
|
|
+ attr_merge( e, slap_schema.si_ad_namingContexts,
|
|
be->be_suffix, be->be_nsuffix );
|
|
- attr_merge( e_database, slap_schema.si_ad_namingContexts,
|
|
+ attr_merge( e_database, slap_schema.si_ad_namingContexts,
|
|
be->be_suffix, be->be_nsuffix );
|
|
+ }
|
|
}
|
|
|
|
(void)init_readOnly( mi, e, be->be_restrictops );
|
|
Index: servers/slapd/back-ldap/chain.c
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-ldap/chain.c,v
|
|
retrieving revision 1.69
|
|
retrieving revision 1.70
|
|
diff -u -r1.69 -r1.70
|
|
--- servers/slapd/back-ldap/chain.c 7 Jan 2008 23:20:11 -0000 1.69
|
|
+++ servers/slapd/back-ldap/chain.c 12 Oct 2008 18:20:46 -0000 1.70
|
|
@@ -63,6 +63,7 @@
|
|
LDAP_CH_RES,
|
|
LDAP_CH_ERR
|
|
} ldap_chain_status_t;
|
|
+
|
|
static BackendInfo *lback;
|
|
|
|
typedef struct ldap_chain_t {
|
|
@@ -1096,7 +1097,7 @@
|
|
"NAME 'olcChainDatabase' "
|
|
"DESC 'Chain remote server configuration' "
|
|
"AUXILIARY )",
|
|
- Cft_Misc, chaincfg, chain_ldadd },
|
|
+ Cft_Misc, olcDatabaseDummy, chain_ldadd },
|
|
{ NULL, 0, NULL }
|
|
};
|
|
|
|
@@ -1187,6 +1188,8 @@
|
|
}
|
|
}
|
|
|
|
+ ca->ca_private = on;
|
|
+
|
|
done:;
|
|
if ( rc != LDAP_SUCCESS ) {
|
|
(void)ldap_chain_db_destroy_one( ca->be, NULL );
|
|
@@ -1510,17 +1513,11 @@
|
|
ldap_chain_t *lc = NULL;
|
|
|
|
if ( lback == NULL ) {
|
|
- static BackendInfo lback2;
|
|
-
|
|
lback = backend_info( "ldap" );
|
|
|
|
if ( lback == NULL ) {
|
|
return 1;
|
|
}
|
|
-
|
|
- lback2 = *lback;
|
|
- lback2.bi_type = ldapchain.on_bi.bi_type;
|
|
- lback = &lback2;
|
|
}
|
|
|
|
lc = ch_malloc( sizeof( ldap_chain_t ) );
|
|
@@ -2062,7 +2059,8 @@
|
|
int
|
|
chain_initialize( void )
|
|
{
|
|
- int rc;
|
|
+ int rc;
|
|
+ const char *text;
|
|
|
|
/* Make sure we don't exceed the bits reserved for userland */
|
|
config_check_userland( CH_LAST );
|
|
Index: servers/slapd/config.h
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/config.h,v
|
|
retrieving revision 1.50
|
|
retrieving revision 1.51
|
|
diff -u -r1.50 -r1.51
|
|
--- servers/slapd/config.h 18 Feb 2008 22:11:12 -0000 1.50
|
|
+++ servers/slapd/config.h 12 Oct 2008 18:20:46 -0000 1.51
|
|
@@ -201,6 +201,8 @@
|
|
extern slap_verbmasks *slap_ldap_response_code;
|
|
extern int slap_ldap_response_code_register( struct berval *bv, int err );
|
|
|
|
+extern ConfigTable olcDatabaseDummy[];
|
|
+
|
|
LDAP_END_DECL
|
|
|
|
#endif /* CONFIG_H */
|
|
Index: servers/slapd/bconfig.c
|
|
===================================================================
|
|
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/bconfig.c,v
|
|
retrieving revision 1.348
|
|
retrieving revision 1.350
|
|
diff -u -r1.348 -r1.350
|
|
--- servers/slapd/bconfig.c 29 Sep 2008 20:08:29 -0000 1.348
|
|
+++ servers/slapd/bconfig.c 12 Oct 2008 18:20:46 -0000 1.350
|
|
@@ -696,6 +696,15 @@
|
|
NULL, NULL, NULL, NULL }
|
|
};
|
|
|
|
+/* Need to no-op this keyword for dynamic config */
|
|
+ConfigTable olcDatabaseDummy[] = {
|
|
+ { "", "", 0, 0, 0, ARG_IGNORED,
|
|
+ NULL, "( OLcfgGlAt:13 NAME 'olcDatabase' "
|
|
+ "DESC 'The backend type for a database instance' "
|
|
+ "SUP olcBackend SINGLE-VALUE X-ORDERED 'SIBLINGS' )", NULL, NULL },
|
|
+ { NULL, NULL, 0, 0, 0, ARG_IGNORED }
|
|
+};
|
|
+
|
|
/* Routines to check if a child can be added to this type */
|
|
static ConfigLDAPadd cfAddSchema, cfAddInclude, cfAddDatabase,
|
|
cfAddBackend, cfAddModule, cfAddOverlay;
|
|
@@ -3253,7 +3262,7 @@
|
|
ConfigArgs *ca;
|
|
Entry *frontend;
|
|
Entry *config;
|
|
- int got_frontend;
|
|
+ int got_frontend;
|
|
int got_config;
|
|
} setup_cookie;
|
|
|
|
@@ -3262,15 +3271,18 @@
|
|
{
|
|
if ( rs->sr_type == REP_SEARCH ) {
|
|
setup_cookie *sc = op->o_callback->sc_private;
|
|
+ struct berval pdn;
|
|
|
|
sc->cfb->cb_got_ldif = 1;
|
|
/* Does the frontend exist? */
|
|
if ( !sc->got_frontend ) {
|
|
if ( !strncmp( rs->sr_entry->e_nname.bv_val,
|
|
- "olcDatabase", STRLENOF( "olcDatabase" ))) {
|
|
+ "olcDatabase", STRLENOF( "olcDatabase" )))
|
|
+ {
|
|
if ( strncmp( rs->sr_entry->e_nname.bv_val +
|
|
STRLENOF( "olcDatabase" ), "={-1}frontend",
|
|
- STRLENOF( "={-1}frontend" ))) {
|
|
+ STRLENOF( "={-1}frontend" )))
|
|
+ {
|
|
struct berval rdn;
|
|
int i = op->o_noop;
|
|
sc->ca->be = frontendDB;
|
|
@@ -3293,13 +3305,19 @@
|
|
}
|
|
}
|
|
}
|
|
+
|
|
+ dnParent( &rs->sr_entry->e_nname, &pdn );
|
|
+
|
|
/* Does the configDB exist? */
|
|
if ( sc->got_frontend && !sc->got_config &&
|
|
!strncmp( rs->sr_entry->e_nname.bv_val,
|
|
- "olcDatabase", STRLENOF( "olcDatabase" ))) {
|
|
+ "olcDatabase", STRLENOF( "olcDatabase" )) &&
|
|
+ dn_match( &config_rdn, &pdn ) )
|
|
+ {
|
|
if ( strncmp( rs->sr_entry->e_nname.bv_val +
|
|
STRLENOF( "olcDatabase" ), "={0}config",
|
|
- STRLENOF( "={0}config" ))) {
|
|
+ STRLENOF( "={0}config" )))
|
|
+ {
|
|
struct berval rdn;
|
|
int i = op->o_noop;
|
|
sc->ca->be = LDAP_STAILQ_FIRST( &backendDB );
|
|
@@ -6466,6 +6484,9 @@
|
|
i = config_register_schema( ct, cf_ocs );
|
|
if ( i ) return i;
|
|
|
|
+ i = slap_str2ad( "olcDatabase", &olcDatabaseDummy[0].ad, &text );
|
|
+ if ( i ) return i;
|
|
+
|
|
/* setup olcRootPW to be base64-encoded when written in LDIF form;
|
|
* basically, we don't care if it fails */
|
|
i = slap_str2ad( "olcRootPW", &ad, &text );
|