ID id;
ID2 id2;
char *ptr;
- int rc;
+ int rc = 0;
unsigned int x;
unsigned int nrlen, rlen;
diskNode *d;
id = isc->id;
while (id) {
- x = mdb_id2l_search( isc->scopes, id );
- if ( x <= isc->scopes[0].mid && isc->scopes[x].mid == id ) {
- if ( !isc->scopes[x].mval.mv_data ) {
- isc->nscope = x;
- return MDB_SUCCESS;
- }
- data = isc->scopes[x].mval;
- rc = 1;
- } else {
+ if ( !rc ) {
key.mv_data = &id;
rc = mdb_cursor_get( isc->mc, &key, &data, MDB_SET );
if ( rc )
isc->rdns[isc->numrdns].bv_val = d->nrdn+nrlen+1;
isc->numrdns++;
-
if (!rc && id != isc->id) {
id2.mid = id;
id2.mval = data;
ptr = data.mv_data;
ptr += data.mv_size - sizeof(ID);
memcpy( &id, ptr, sizeof(ID) );
+ x = mdb_id2l_search( isc->scopes, id );
+ if ( x <= isc->scopes[0].mid && isc->scopes[x].mid == id ) {
+ if ( !isc->scopes[x].mval.mv_data ) {
+ isc->nscope = x;
+ return MDB_SUCCESS;
+ }
+ data = isc->scopes[x].mval;
+ rc = 1;
+ }
if ( op->ors_scope == LDAP_SCOPE_ONELEVEL )
break;
}