work out an issue with chk_referrals and back-relay/rwm; this looks like the best compromise; minor cleanup

This commit is contained in:
Pierangelo Masarati 2004-12-11 17:37:21 +00:00
parent ed0949c7e7
commit 57c4f45977

View file

@ -83,7 +83,7 @@ rwm_op_dn_massage( Operation *op, SlapReply *rs, void *cookie )
} }
static int static int
rwm_add( Operation *op, SlapReply *rs ) rwm_op_add( Operation *op, SlapReply *rs )
{ {
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info; slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
struct ldaprwmap *rwmap = struct ldaprwmap *rwmap =
@ -182,7 +182,7 @@ cleanup_attr:;
} }
static int static int
rwm_bind( Operation *op, SlapReply *rs ) rwm_op_bind( Operation *op, SlapReply *rs )
{ {
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info; slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
struct ldaprwmap *rwmap = struct ldaprwmap *rwmap =
@ -208,7 +208,7 @@ rwm_bind( Operation *op, SlapReply *rs )
} }
static int static int
rwm_unbind( Operation *op, SlapReply *rs ) rwm_op_unbind( Operation *op, SlapReply *rs )
{ {
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info; slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
struct ldaprwmap *rwmap = struct ldaprwmap *rwmap =
@ -222,7 +222,7 @@ rwm_unbind( Operation *op, SlapReply *rs )
} }
static int static int
rwm_compare( Operation *op, SlapReply *rs ) rwm_op_compare( Operation *op, SlapReply *rs )
{ {
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info; slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
struct ldaprwmap *rwmap = struct ldaprwmap *rwmap =
@ -301,7 +301,7 @@ rwm_compare( Operation *op, SlapReply *rs )
} }
static int static int
rwm_delete( Operation *op, SlapReply *rs ) rwm_op_delete( Operation *op, SlapReply *rs )
{ {
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info; slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
int rc; int rc;
@ -322,7 +322,7 @@ rwm_delete( Operation *op, SlapReply *rs )
} }
static int static int
rwm_modify( Operation *op, SlapReply *rs ) rwm_op_modify( Operation *op, SlapReply *rs )
{ {
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info; slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
struct ldaprwmap *rwmap = struct ldaprwmap *rwmap =
@ -460,7 +460,7 @@ cleanup_mod:;
} }
static int static int
rwm_modrdn( Operation *op, SlapReply *rs ) rwm_op_modrdn( Operation *op, SlapReply *rs )
{ {
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info; slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
struct ldaprwmap *rwmap = struct ldaprwmap *rwmap =
@ -543,7 +543,7 @@ static int rwm_freeself( Operation *op, SlapReply *rs )
} }
static int static int
rwm_search( Operation *op, SlapReply *rs ) rwm_op_search( Operation *op, SlapReply *rs )
{ {
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info; slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
struct ldaprwmap *rwmap = struct ldaprwmap *rwmap =
@ -984,6 +984,32 @@ rwm_operational( Operation *op, SlapReply *rs )
return SLAP_CB_CONTINUE; return SLAP_CB_CONTINUE;
} }
#if 0
/* don't use this; it cannot be reverted, and leaves op->o_req_dn
* rewritten for subsequent operations; fine for plain suffixmassage,
* but destroys everything else */
static int
rwm_chk_referrals( Operation *op, SlapReply *rs )
{
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
int rc;
#ifdef ENABLE_REWRITE
rc = rwm_op_dn_massage( op, rs, "referralCheckDN" );
#else /* ! ENABLE_REWRITE */
rc = 1;
rc = rwm_op_dn_massage( op, rs, &rc );
#endif /* ! ENABLE_REWRITE */
if ( rc != LDAP_SUCCESS ) {
op->o_bd->bd_info = (BackendInfo *)on->on_info;
send_ldap_error( op, rs, rc, "referralCheckDN massage error" );
return -1;
}
return SLAP_CB_CONTINUE;
}
#endif
static int static int
rwm_rw_config( rwm_rw_config(
BackendDB *be, BackendDB *be,
@ -1313,16 +1339,18 @@ rwm_init(void)
rwm.on_bi.bi_db_config = rwm_db_config; rwm.on_bi.bi_db_config = rwm_db_config;
rwm.on_bi.bi_db_destroy = rwm_db_destroy; rwm.on_bi.bi_db_destroy = rwm_db_destroy;
rwm.on_bi.bi_op_bind = rwm_bind; rwm.on_bi.bi_op_bind = rwm_op_bind;
rwm.on_bi.bi_op_search = rwm_search; rwm.on_bi.bi_op_search = rwm_op_search;
rwm.on_bi.bi_op_compare = rwm_compare; rwm.on_bi.bi_op_compare = rwm_op_compare;
rwm.on_bi.bi_op_modify = rwm_modify; rwm.on_bi.bi_op_modify = rwm_op_modify;
rwm.on_bi.bi_op_modrdn = rwm_modrdn; rwm.on_bi.bi_op_modrdn = rwm_op_modrdn;
rwm.on_bi.bi_op_add = rwm_add; rwm.on_bi.bi_op_add = rwm_op_add;
rwm.on_bi.bi_op_delete = rwm_delete; rwm.on_bi.bi_op_delete = rwm_op_delete;
rwm.on_bi.bi_op_unbind = rwm_unbind; rwm.on_bi.bi_op_unbind = rwm_op_unbind;
rwm.on_bi.bi_extended = rwm_extended; rwm.on_bi.bi_extended = rwm_extended;
rwm.on_bi.bi_operational = rwm_operational; rwm.on_bi.bi_operational = rwm_operational;
rwm.on_bi.bi_chk_referrals = 0 /* rwm_chk_referrals */ ;
rwm.on_response = rwm_response; rwm.on_response = rwm_response;