/* $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.
*
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,
*/
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;
*/
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,
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;
op->o_callback = &cb;
if ( fr || !fl ) {
+ AttributeName *attrs = op->ors_attrs;
+ op->ors_attrs = NULL;
op->o_bd = &ov->db;
tc.step |= RMT_SIDE;
if ( fl ) {
filter2bv_x( op, fr, &op->ors_filterstr );
}
rc = ov->db.bd_info->bi_op_search(op, rs);
+ op->ors_attrs = attrs;
op->o_bd = tc.db;
if ( fl ) {
op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx );
op->ors_filterstr = fbv;
op->ors_filter = tc.orig;
op->o_callback = cb.sc_next;
+ rs->sr_attrs = op->ors_attrs;
+
/* Send out anything remaining on the list and finish */
if ( tc.step & USE_LIST ) {
if ( tc.list ) {
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;
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 )) {