]> git.sur5r.net Git - openldap/commitdiff
Minor fixes
authorHoward Chu <hyc@openldap.org>
Fri, 26 Aug 2011 19:02:20 +0000 (12:02 -0700)
committerHoward Chu <hyc@openldap.org>
Fri, 26 Aug 2011 19:02:20 +0000 (12:02 -0700)
servers/slapd/back-mdb/tools.c

index b1f5100115f2f1e2789134277d145d16af9356c0..285ad2ed7cd7156a8c1595ef36b408c1e1fc4466 100644 (file)
@@ -142,6 +142,7 @@ int mdb_tool_entry_close(
        if( txn ) {
                if ( mdb_txn_commit( txn ))
                        return -1;
+               txn = NULL;
        }
 
        if( nholes ) {
@@ -151,6 +152,7 @@ int mdb_tool_entry_close(
                        fprintf(stderr, "  entry %ld: %s\n",
                                holes[i].id, holes[i].dn.bv_val);
                }
+               nholes = 0;
                return -1;
        }
                        
@@ -242,6 +244,7 @@ ID mdb_tool_dn2id_get(
        struct berval *dn
 )
 {
+       struct mdb_info *mdb;
        Operation op = {0};
        Opheader ohdr = {0};
        ID id;
@@ -250,6 +253,14 @@ ID mdb_tool_dn2id_get(
        if ( BER_BVISEMPTY(dn) )
                return 0;
 
+       mdb = (struct mdb_info *) be->be_private;
+
+       if ( !txn ) {
+               rc = mdb_txn_begin( mdb->mi_dbenv, (slapMode & SLAP_TOOL_READONLY) != 0, &txn );
+               if ( rc )
+                       return NOID;
+       }
+
        op.o_hdr = &ohdr;
        op.o_bd = be;
        op.o_tmpmemctx = NULL;