cr->msg, 0, 0 );
break;
}
- if (slapMode & SLAP_TRUNCATE_MODE) {
- rc = mdb_drop( txn, mdb->mi_attrs[i]->ai_dbi, 0 );
- if ( rc ) {
- snprintf( cr->msg, sizeof(cr->msg), "database \"%s\": "
- "mdb_drop(%s) failed: %s (%d).",
- be->be_suffix[0].bv_val,
- mdb->mi_attrs[i]->ai_desc->ad_type->sat_cname.bv_val,
- mdb_strerror(rc), rc );
- Debug( LDAP_DEBUG_ANY,
- LDAP_XSTRING(mdb_attr_dbs) ": %s\n",
- cr->msg, 0, 0 );
- break;
- }
- }
}
/* Only commit if this is our txn */
mi->mi_nattrs = i;
}
+ if ( slapMode & SLAP_TRUNCATE_MODE ) {
+ int i;
+ for ( i=0; i < mi->mi_nattrs; i++ ) {
+ rc = mdb_drop( txn, mi->mi_attrs[i]->ai_dbi, 0 );
+ if ( rc ) {
+ Debug( LDAP_DEBUG_ANY,
+ LDAP_XSTRING(mdb_tool_entry_reindex)
+ ": (Truncate) mdb_drop(%s) failed: %s (%d)\n",
+ mi->mi_attrs[i]->ai_desc->ad_type->sat_cname.bv_val,
+ mdb_strerror(rc), rc );
+ return -1;
+ }
+ }
+ slapMode ^= SLAP_TRUNCATE_MODE;
+ }
+
e = mdb_tool_entry_get( be, id );
if( e == NULL ) {