/* dn2entry.c - routines to deal with the dn2id / id2entry glue */
/* $OpenLDAP$ */
/*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
#include "back-bdb.h"
+
/*
* dn2entry - look up dn in the cache/indexes and return the corresponding
* entry.
*/
int
-bdb_dn2entry(
+bdb_dn2entry_rw(
BackendDB *be,
DB_TXN *tid,
struct berval *dn,
Entry **e,
Entry **matched,
- int flags )
+ int flags,
+ int rw,
+ u_int32_t locker,
+ DB_LOCK *lock )
{
int rc;
ID id, id2 = 0;
- Debug(LDAP_DEBUG_TRACE, "bdb_dn2entry(\"%s\")\n",
+#ifdef NEW_LOGGING
+ LDAP_LOG ( CACHE, ARGS, "bdb_dn2entry_rw(\"%s\")\n", dn->bv_val, 0, 0 );
+#else
+ Debug(LDAP_DEBUG_TRACE, "bdb_dn2entry_rw(\"%s\")\n",
dn->bv_val, 0, 0 );
+#endif
*e = NULL;
if( matched != NULL ) {
*matched = NULL;
- rc = bdb_dn2id_matched( be, tid, dn, &id, &id2 );
+ rc = bdb_dn2id_matched( be, tid, dn, &id, &id2, flags );
} else {
- rc = bdb_dn2id( be, tid, dn, &id );
+ rc = bdb_dn2id( be, tid, dn, &id, flags );
}
if( rc != 0 ) {
}
if( id2 == 0 ) {
- rc = bdb_id2entry( be, tid, id, e );
+ rc = bdb_id2entry_rw( be, tid, id, e, rw, locker, lock );
} else {
- rc = bdb_id2entry( be, tid, id2, matched );
+ rc = bdb_id2entry_r( be, tid, id2, matched, locker, lock );
}
return rc;