mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-01 14:15:49 +08:00
First underlying LDAP database needs special treatment upon deletion
This commit is contained in:
parent
33cab9b7ed
commit
f4e5030c22
@ -1448,10 +1448,18 @@ chain_lddel( CfEntryInfo *ce, Operation *op )
|
||||
ldap_chain_t *lc = (ldap_chain_t *)on->on_bi.bi_private;
|
||||
ldapinfo_t *li = (ldapinfo_t *) ce->ce_be->be_private;
|
||||
|
||||
if (! avl_delete( &lc->lc_lai.lai_tree, li, ldap_chain_uri_cmp ) ) {
|
||||
Debug( LDAP_DEBUG_ANY, "slapd-chain: avl_delete failed. "
|
||||
"\"%s\" not found.\n", li->li_uri, 0, 0 );
|
||||
if ( li != lc->lc_common_li ) {
|
||||
if (! avl_delete( &lc->lc_lai.lai_tree, li, ldap_chain_uri_cmp ) ) {
|
||||
Debug( LDAP_DEBUG_ANY, "slapd-chain: avl_delete failed. "
|
||||
"\"%s\" not found.\n", li->li_uri, 0, 0 );
|
||||
return -1;
|
||||
}
|
||||
} else if ( lc->lc_lai.lai_tree ) {
|
||||
Debug( LDAP_DEBUG_ANY, "slapd-chain: cannot delete first underlying "
|
||||
"LDAP database when other databases are still present.\n", 0, 0, 0 );
|
||||
return -1;
|
||||
} else {
|
||||
lc->lc_common_li = NULL;
|
||||
}
|
||||
|
||||
ce->ce_be->bd_info = lback;
|
||||
|
Loading…
Reference in New Issue
Block a user