From: Howard Chu Date: Tue, 12 Jun 2012 23:16:07 +0000 (-0700) Subject: ITS#7303 fix unneeded alias lookups X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=7c2842061868332cc4f891cd9588dfc0d8f61a23;p=openldap ITS#7303 fix unneeded alias lookups --- diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index 89b347f595..a822564c55 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -184,7 +184,7 @@ static int search_aliases( BDB_IDL_ZERO( aliases ); rs->sr_err = bdb_filter_candidates( op, txn, &af, aliases, curscop, visited ); - if (rs->sr_err != LDAP_SUCCESS) { + if (rs->sr_err != LDAP_SUCCESS || BDB_IDL_IS_ZERO( aliases )) { return rs->sr_err; } oldsubs[0] = 1; @@ -1253,6 +1253,8 @@ static int search_candidates( if( op->ors_deref & LDAP_DEREF_SEARCHING ) { rc = search_aliases( op, rs, e, txn, ids, scopes, stack ); + if ( BDB_IDL_IS_ZERO( ids )) + rc = bdb_dn2idl( op, txn, &e->e_nname, BEI(e), ids, stack ); } else { rc = bdb_dn2idl( op, txn, &e->e_nname, BEI(e), ids, stack ); } diff --git a/servers/slapd/back-mdb/search.c b/servers/slapd/back-mdb/search.c index ca3e3c6eae..fda36ebf11 100644 --- a/servers/slapd/back-mdb/search.c +++ b/servers/slapd/back-mdb/search.c @@ -160,7 +160,7 @@ static int search_aliases( MDB_IDL_ZERO( aliases ); rs->sr_err = mdb_filter_candidates( op, txn, &af, aliases, curscop, visited ); - if (rs->sr_err != LDAP_SUCCESS) { + if (rs->sr_err != LDAP_SUCCESS || MDB_IDL_IS_ZERO( aliases )) { return rs->sr_err; } oldsubs[0] = 1;