Backend *
select_backend(
struct berval * dn,
- int manageDSAit,
int noSubs )
{
int j;
ber_len_t len, dnlen = dn->bv_len;
- Backend *be, *b2 = NULL;
+ Backend *be;
LDAP_STAILQ_FOREACH( be, &backendDB, be_next ) {
if ( be->be_nsuffix == NULL || SLAP_DBHIDDEN( be )) {
if ( strcmp( be->be_nsuffix[j].bv_val,
&dn->bv_val[dnlen-len] ) == 0 )
{
- if( b2 == NULL ) {
- b2 = be;
-
- if( manageDSAit && len == dnlen &&
- !SLAP_GLUE_SUBORDINATE( be ) ) {
- continue;
- }
- } else {
- /* If any parts of the tree are glued, use the first
- * match regardless of manageDSAit. Otherwise use the
- * last match.
- */
- if( !( SLAP_DBFLAGS( be ) & ( SLAP_DBFLAG_GLUE_INSTANCE |
- SLAP_DBFLAG_GLUE_SUBORDINATE )))
- b2 = be;
- }
- return b2;
+ return be;
}
}
}
- return b2;
+ return be;
}
int
GroupAssertion *g;
Backend *be = op->o_bd;
- op->o_bd = select_backend( gr_ndn, 0, 0 );
+ op->o_bd = select_backend( gr_ndn, 0 );
for ( g = op->o_groups; g; g = g->ga_next ) {
if ( g->ga_be != op->o_bd || g->ga_oc != group_oc ||
if ( user == NULL ) {
int rc2;
- op->o_bd = select_backend( op_ndn, 0, 0 );
+ op->o_bd = select_backend( op_ndn, 0 );
op->o_private = NULL;
rc2 = be_entry_get_rw( op, op_ndn, NULL, NULL, 0, &user );
user_priv = op->o_private;
AccessControlState acl_state = ACL_STATE_INIT;
Backend *be = op->o_bd;
- op->o_bd = select_backend( edn, 0, 0 );
+ op->o_bd = select_backend( edn, 0 );
if ( target && dn_match( &target->e_nname, edn ) ) {
e = target;
assert( edn != NULL );
assert( access > ACL_NONE );
- op->o_bd = select_backend( edn, 0, 0 );
+ op->o_bd = select_backend( edn, 0 );
if ( target && dn_match( &target->e_nname, edn ) ) {
e = target;
BackendDB *be_orig = op->o_bd;
/* Let the overlays have a chance at this */
- op->o_bd = select_backend( &op->o_req_ndn, 0, 0 );
+ op->o_bd = select_backend( &op->o_req_ndn, 0 );
if ( op->o_bd != NULL && !be_match( op->o_bd, frontendDB ) &&
( SLAP_OPATTRS( rs->sr_attr_flags ) || rs->sr_attrs ) &&
op->o_bd->be_operational != NULL )