slap_overinst *on = oi->oi_list;
int rc = 0;
BackendDB *be = op->o_bd, db = *op->o_bd;
+ slap_callback *sc = op->o_callback->sc_private;
op->o_bd = &db;
for (; on; on=on->on_next ) {
if ( rc ) break;
}
}
+ op->o_callback = sc;
+ if ( rc == 0 && sc ) {
+ rc = sc->sc_response( op, rs );
+ }
op->o_bd = be;
return rc;
}
{
slap_overinfo *oi = (slap_overinfo *) op->o_bd->bd_info;
slap_overinst *on = oi->oi_list;
- int rc = 0;
- BackendDB *be = op->o_bd, db = *op->o_bd;
BI_op_bind **func;
+ BackendDB *be = op->o_bd, db = *op->o_bd;
slap_callback cb = {over_back_response, NULL};
+ int rc = 0;
op->o_bd = &db;
+ cb.sc_private = op->o_callback;
+ op->o_callback = &cb;
+
for (; on; on=on->on_next ) {
func = &on->on_bi.bi_op_bind;
if ( func[which] ) {
if ( rc ) break;
}
}
+
func = &oi->oi_bi.bi_op_bind;
if ( func[which] ) {
rc = func[which]( op, rs );