]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/translucent.c
ITS#6103: rev 1.331 followup for LDAP_CONNECTIONLESS
[openldap] / servers / slapd / overlays / translucent.c
index e87cbe4632aa3dd05aeaef704efe84abdabbcafc..92d9a211517b2f9d65ac73a18a5624b37edee06c 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * 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 )) {