typedef struct gluenode {
BackendDB *gn_be;
- int gn_bx;
struct berval gn_pdn;
int gn_async;
} gluenode;
switch (op->ors_scope) {
case LDAP_SCOPE_BASE:
- return SLAP_CB_CONTINUE;
+ rs->sr_err = LDAP_UNWILLING_TO_PERFORM;
+ if (op->o_bd && op->o_bd->be_search) {
+ rs->sr_err = op->o_bd->be_search( op, rs );
+ }
+ return rs->sr_err;
case LDAP_SCOPE_ONELEVEL:
case LDAP_SCOPE_SUBTREE:
return SLAP_CB_CONTINUE;
}
-static int
-glue_db_open (
- BackendDB *be
-)
-{
- slap_overinst *on = (slap_overinst *)be->bd_info;
- glueinfo *gi = (glueinfo *)on->on_bi.bi_private;
- int i;
-
- for ( i=0; i<gi->gi_nodes; i++ ) {
- int j;
-
- gi->gi_n[i].gn_be = backendDB + gi->gi_n[i].gn_bx;
- }
- return 0;
-}
-
static int
glue_db_close(
BackendDB *be
}
gi = (glueinfo *)ch_realloc( gi, sizeof(glueinfo) +
gi->gi_nodes * sizeof(gluenode));
- gi->gi_n[gi->gi_nodes].gn_bx = b2 - backendDB;
+ gi->gi_n[gi->gi_nodes].gn_be = b2;
dnParent( &b2->be_nsuffix[0], &gi->gi_n[gi->gi_nodes].gn_pdn );
gi->gi_n[gi->gi_nodes].gn_async = async;
gi->gi_nodes++;
glue.on_bi.bi_db_init = glue_db_init;
glue.on_bi.bi_db_config = glue_db_config;
- glue.on_bi.bi_db_open = glue_db_open;
glue.on_bi.bi_db_close = glue_db_close;
glue.on_bi.bi_db_destroy = glue_db_destroy;