From 7c2842061868332cc4f891cd9588dfc0d8f61a23 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Tue, 12 Jun 2012 16:16:07 -0700 Subject: [PATCH] ITS#7303 fix unneeded alias lookups --- servers/slapd/back-bdb/search.c | 4 +++- servers/slapd/back-mdb/search.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) 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; -- 2.39.5