X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foverlays%2Ftranslucent.c;h=92d9a211517b2f9d65ac73a18a5624b37edee06c;hb=8bdfd2edbb7a09f5bfe96b2bca043680f731237a;hp=e87cbe4632aa3dd05aeaef704efe84abdabbcafc;hpb=e3bc5b64c6d079433af4c08aa808b077c512b8a5;p=openldap diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c index e87cbe4632..92d9a21151 100644 --- a/servers/slapd/overlays/translucent.c +++ b/servers/slapd/overlays/translucent.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2004-2008 The OpenLDAP Foundation. + * Copyright 2004-2009 The OpenLDAP Foundation. * Portions Copyright 2005 Symas Corporation. * All rights reserved. * @@ -432,6 +432,7 @@ static int translucent_modify(Operation *op, SlapReply *rs) { db = op->o_bd; op->o_bd = &ov->db; + ov->db.be_acl = op->o_bd->be_acl; rc = ov->db.bd_info->bi_entry_get_rw(op, &op->o_req_ndn, NULL, NULL, 0, &re); if(rc != LDAP_SUCCESS || re == NULL ) { send_ldap_error((op), rs, LDAP_NO_SUCH_OBJECT, @@ -629,6 +630,7 @@ static int translucent_compare(Operation *op, SlapReply *rs) { */ db = op->o_bd; op->o_bd = &ov->db; + ov->db.be_acl = op->o_bd->be_acl; rc = ov->db.bd_info->bi_op_compare(op, rs); op->o_bd = db; @@ -661,6 +663,7 @@ static int translucent_pwmod(Operation *op, SlapReply *rs) { */ db = op->o_bd; op->o_bd = &ov->db; + ov->db.be_acl = op->o_bd->be_acl; rc = ov->db.bd_info->bi_entry_get_rw(op, &op->o_req_ndn, NULL, NULL, 0, &re); if(rc != LDAP_SUCCESS || re == NULL ) { send_ldap_error((op), rs, LDAP_NO_SUCH_OBJECT, @@ -1096,6 +1099,7 @@ static int translucent_search(Operation *op, SlapReply *rs) { cb.sc_private = &tc; cb.sc_next = op->o_callback; + ov->db.be_acl = op->o_bd->be_acl; tc.db = op->o_bd; tc.on = on; tc.orig = op->ors_filter; @@ -1193,6 +1197,7 @@ static int translucent_bind(Operation *op, SlapReply *rs) { db = op->o_bd; op->o_bd = &ov->db; + ov->db.be_acl = op->o_bd->be_acl; rc = ov->db.bd_info->bi_op_bind(op, rs); op->o_bd = db; @@ -1268,7 +1273,6 @@ static int translucent_db_init(BackendDB *be, ConfigReply *cr) { on->on_bi.bi_private = ov; ov->db = *be; ov->db.be_private = NULL; - ov->db.be_pcl_mutexp = &ov->db.be_pcl_mutex; ov->defer_db_open = 1; if ( !backend_db_init( "ldap", &ov->db, -1, NULL )) {