]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-mdb/config.c
Tweak back-mdb integer types to match libmdb.
[openldap] / servers / slapd / back-mdb / config.c
index c6cb3cb0430e2ab39993642fa6adc21e766ce799..b21dbee35e95cc54ed5f675444ab0454e89f621f 100644 (file)
@@ -60,7 +60,7 @@ static ConfigTable mdbcfg[] = {
                "DESC 'Attribute index parameters' "
                "EQUALITY caseIgnoreMatch "
                "SYNTAX OMsDirectoryString )", NULL, NULL },
-       { "maxreaders", "num", 2, 2, 0, ARG_INT|ARG_MAGIC|MDB_MAXREADERS,
+       { "maxreaders", "num", 2, 2, 0, ARG_UINT|ARG_MAGIC|MDB_MAXREADERS,
                mdb_cf_gen, "( OLcfgDbAt:12.1 NAME 'olcDbMaxReaders' "
                "DESC 'Maximum number of threads that may access the DB concurrently' "
                "SYNTAX OMsInteger SINGLE-VALUE )", NULL, NULL },
@@ -144,25 +144,25 @@ mdb_online_index( void *ctx, void *arg )
                rc = mdb_txn_begin( mdb->mi_dbenv, 0, &txn );
                if ( rc )
                        break;
+               rc = mdb_cursor_open( txn, mdb->mi_id2entry, &curs );
+               if ( rc ) {
+                       mdb_txn_abort( txn );
+                       break;
+               }
                if ( getnext ) {
                        getnext = 0;
-                       rc = mdb_cursor_open( txn, mdb->mi_id2entry, &curs );
-                       if ( rc ) {
-                               mdb_txn_abort( txn );
-                               break;
-                       }
                        rc = mdb_cursor_get( curs, &key, &data, MDB_SET_RANGE );
-                       memcpy( &id, key.mv_data, sizeof( id ));
-                       mdb_cursor_close( curs );
                        if ( rc ) {
                                mdb_txn_abort( txn );
                                if ( rc == MDB_NOTFOUND )
                                        rc = 0;
                                break;
                        }
+                       memcpy( &id, key.mv_data, sizeof( id ));
                }
 
-               rc = mdb_id2entry( op, txn, id, &e );
+               rc = mdb_id2entry( op, curs, id, &e );
+               mdb_cursor_close( curs );
                if ( rc ) {
                        mdb_txn_abort( txn );
                        if ( rc == MDB_NOTFOUND ) {