- }
- }
- break;
-
- case LDAP_SCOPE_SUBTREE:
- op->o_glue = &gs;
- op->o_sresult = glue_back_sresult;
- op->o_response = glue_back_response;
-
- /*
- * Execute in reverse order, most general first
- */
- for (i = gi->nodes-1; i >= 0; i--) {
- if (!gi->n[i].be->be_search)
- continue;
- if (tlimit) {
- t2limit = stoptime - slap_get_time ();
- if (t2limit <= 0)
- break;
- }
- if (slimit) {
- s2limit = slimit - gs.nentries;
- if (s2limit <= 0)
- break;
- }
- /*
- * check for abandon
- */
- ldap_pvt_thread_mutex_lock (&op->o_abandonmutex);
- rc = op->o_abandon;
- ldap_pvt_thread_mutex_unlock (&op->o_abandonmutex);
- if (rc) {
- rc = 0;
- goto done;
- }
- if (dn_issuffix (ndn, b0->be_nsuffix[i]->bv_val)) {
- be = gi->n[i].be;