DB *db = bdb->bi_id2entry->bdi_db;
DBT key, data;
struct berval bv;
- char buf[sizeof(ID)];
- ID tmp;
- int i, rc;
+ int rc;
#ifdef BDB_HIER
struct berval odn, ondn;
e->e_nname = slap_empty_bv;
#endif
DBTzero( &key );
- key.data = buf;
+ key.data = (char *) &e->e_id;
key.size = sizeof(ID);
- /* Set key in BigEndian order */
- tmp = e->e_id;
- for ( i=sizeof(ID)-1; i>=0; i-- ) {
- buf[i] = tmp & 0xff;
- tmp >>= 8;
- }
-
rc = entry_encode( e, &bv );
#ifdef BDB_HIER
e->e_name = odn; e->e_nname = ondn;
DB *db = bdb->bi_id2entry->bdi_db;
DBT key, data;
struct berval bv;
- char buf[sizeof(ID)];
- ID tmp;
- int i, rc = 0, ret = 0;
+ int rc = 0, ret = 0;
*e = NULL;
DBTzero( &key );
- key.data = buf;
+ key.data = (char *) &id;
key.size = sizeof(ID);
- tmp = id;
- for ( i=sizeof(ID)-1; i>=0; i-- ) {
- buf[i] = tmp & 0xff;
- tmp >>= 8;
- }
DBTzero( &data );
data.flags = DB_DBT_MALLOC;
struct bdb_info *bdb = (struct bdb_info *) be->be_private;
DB *db = bdb->bi_id2entry->bdi_db;
DBT key;
- char buf[sizeof(ID)];
- ID tmp;
- int i, rc;
+ int rc;
DBTzero( &key );
- key.data = buf;
+ key.data = (char *) &e->e_id;
key.size = sizeof(ID);
- tmp = e->e_id;
- for ( i=sizeof(ID)-1; i>=0; i-- ) {
- buf[i] = tmp & 0xff;
- tmp >>= 8;
- }
/* delete from database */
rc = db->del( db, tid, &key, 0 );
SLAP_TRUNCATE_MODE, SLAP_UNDEFINED_MODE */
if ( slapMode == SLAP_SERVER_MODE ) {
+ /* If not in our cache, just free it */
+ if ( !e->e_private ) {
+ return bdb_entry_return( e );
+ }
/* free entry and reader or writer lock */
if ( o ) {
boi = (struct bdb_op_info *)o->o_private;