/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2013 The OpenLDAP Foundation.
+ * Copyright 2000-2015 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
if ( rc ) {
Debug( LDAP_DEBUG_ANY,
- LDAP_XSTRING(mdb_db_open) ": database \"%s\" cannot be opened, err %d. "
+ LDAP_XSTRING(mdb_db_open) ": database \"%s\" cannot be opened: %s (%d). "
"Restore from backup!\n",
- be->be_suffix[0].bv_val, rc, 0 );
+ be->be_suffix[0].bv_val, mdb_strerror(rc), rc );
goto fail;
}
rc = mdb_txn_begin( mdb->mi_dbenv, NULL, flags & MDB_RDONLY, &txn );
if ( rc ) {
Debug( LDAP_DEBUG_ANY,
- LDAP_XSTRING(mdb_db_open) ": database \"%s\" cannot be opened, err %d. "
+ LDAP_XSTRING(mdb_db_open) ": database \"%s\" cannot be opened: %s (%d). "
"Restore from backup!\n",
- be->be_suffix[0].bv_val, rc, 0 );
+ be->be_suffix[0].bv_val, mdb_strerror(rc), rc );
goto fail;
}
goto fail;
}
- rc = mdb_attr_dbs_open( be, txn, cr );
- if ( rc ) {
- mdb_txn_abort( txn );
- goto fail;
+ /* slapcat doesn't need indexes. avoid a failure if
+ * a configured index wasn't created yet.
+ */
+ if ( !(slapMode & SLAP_TOOL_READONLY) ) {
+ rc = mdb_attr_dbs_open( be, txn, cr );
+ if ( rc ) {
+ mdb_txn_abort( txn );
+ goto fail;
+ }
}
rc = mdb_txn_commit(txn);
bi->bi_op_search = mdb_search;
bi->bi_op_unbind = 0;
+ bi->bi_op_txn = mdb_txn;
bi->bi_extended = mdb_extended;