]> git.sur5r.net Git - openldap/commitdiff
ITS#7915 fix translucent_modify
authorHoward Chu <hyc@openldap.org>
Mon, 4 Aug 2014 20:37:34 +0000 (13:37 -0700)
committerHoward Chu <hyc@openldap.org>
Mon, 4 Aug 2014 20:42:35 +0000 (13:42 -0700)
Go directly to local backend when fetching local entry

servers/slapd/overlays/translucent.c

index 379adc1b807992096c861fe31b4f1fc688369597..a8846b10a1a404208605df5e918936cd15a8c215 100644 (file)
@@ -439,7 +439,7 @@ static int translucent_modify(Operation *op, SlapReply *rs) {
 **
 */
 
-       op->o_bd->bd_info = (BackendInfo *) on->on_info;
+       op->o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig;
        rc = be_entry_get_rw(op, &op->o_req_ndn, NULL, NULL, 0, &e);
        op->o_bd->bd_info = (BackendInfo *) on;
 
@@ -486,7 +486,7 @@ release:
                        } else
                                entry_free(re);
                }
-               op->o_bd->bd_info = (BackendInfo *) on->on_info;
+               op->o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig;
                be_entry_release_r(op, e);
                op->o_bd->bd_info = (BackendInfo *) on;
                if(erc == SLAP_CB_CONTINUE) {
@@ -662,7 +662,7 @@ static int translucent_pwmod(Operation *op, SlapReply *rs) {
 **     return CONTINUE;
 */
 
-       op->o_bd->bd_info = (BackendInfo *) on->on_info;
+       op->o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig;
        rc = be_entry_get_rw(op, &op->o_req_ndn, NULL, NULL, 0, &e);
        op->o_bd->bd_info = (BackendInfo *) on;
 
@@ -676,7 +676,7 @@ static int translucent_pwmod(Operation *op, SlapReply *rs) {
                                entry_free(re);
                        }
                }
-               op->o_bd->bd_info = (BackendInfo *) on->on_info;
+               op->o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig;
                be_entry_release_r(op, e);
                op->o_bd->bd_info = (BackendInfo *) on;
                return SLAP_CB_CONTINUE;