rc = TXN_ABORT( ltid );
ltid = NULL;
op->o_private = NULL;
+ op->o_do_not_cache = opinfo.boi_acl_cache;
if( rc != 0 ) {
rc = LDAP_OTHER;
*text = "internal error";
opinfo.boi_txn = ltid;
opinfo.boi_locker = locker;
opinfo.boi_err = 0;
+ opinfo.boi_acl_cache = op->o_do_not_cache;
op->o_private = &opinfo;
/* get entry */
ml.sml_desc = slap_schema.si_ad_userPassword;
ml.sml_values = vals;
-#ifdef SLAP_VALUES
+#ifdef SLAP_NVALUES
ml.sml_nvalues = vals;
#endif
ml.sml_op = LDAP_MOD_REPLACE;
rc = bdb_modify_internal( be, conn, op, ltid,
&ml, e, text, textbuf, textlen );
+ if ( (rc == LDAP_INSUFFICIENT_ACCESS) && opinfo.boi_err ) {
+ rc = opinfo.boi_err;
+ }
switch(rc) {
case DB_LOCK_DEADLOCK:
case DB_LOCK_NOTGRANTED: