mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-04-12 15:10:31 +08:00
ITS#10186 overlay response callbacks should ignore op->o_abandon
This commit is contained in:
parent
c8caa9f659
commit
7015ad6568
@ -150,6 +150,7 @@ autogroup_add_member_to_group( Operation *op, BerValue *dn, BerValue *ndn, autog
|
||||
o.orm_no_opattrs = 1;
|
||||
o.o_managedsait = SLAP_CONTROL_CRITICAL;
|
||||
o.o_relax = SLAP_CONTROL_CRITICAL;
|
||||
o.o_abandon = 0;
|
||||
|
||||
oex.oe_key = (void *)&autogroup;
|
||||
LDAP_SLIST_INSERT_HEAD( &o.o_extra, &oex, oe_next );
|
||||
@ -206,6 +207,7 @@ autogroup_add_member_values_to_group( Operation *op, struct berval *dn, autogrou
|
||||
o.orm_no_opattrs = 1;
|
||||
o.o_managedsait = SLAP_CONTROL_CRITICAL;
|
||||
o.o_relax = SLAP_CONTROL_CRITICAL;
|
||||
o.o_abandon = 0;
|
||||
|
||||
oex.oe_key = (void *)&autogroup;
|
||||
LDAP_SLIST_INSERT_HEAD( &o.o_extra, &oex, oe_next );
|
||||
@ -279,6 +281,7 @@ autogroup_delete_member_from_group( Operation *op, BerValue *dn, BerValue *ndn,
|
||||
o.o_permissive_modify = 1;
|
||||
o.o_dont_replicate = 1;
|
||||
o.orm_no_opattrs = 1;
|
||||
o.o_abandon = 0;
|
||||
|
||||
oex.oe_key = (void *)&autogroup;
|
||||
LDAP_SLIST_INSERT_HEAD( &o.o_extra, &oex, oe_next );
|
||||
@ -335,6 +338,7 @@ autogroup_delete_member_values_from_group( Operation *op, struct berval *dn, aut
|
||||
o.orm_no_opattrs = 1;
|
||||
o.o_managedsait = SLAP_CONTROL_CRITICAL;
|
||||
o.o_relax = SLAP_CONTROL_CRITICAL;
|
||||
o.o_abandon = 0;
|
||||
|
||||
oex.oe_key = (void *)&autogroup;
|
||||
LDAP_SLIST_INSERT_HEAD( &o.o_extra, &oex, oe_next );
|
||||
@ -502,6 +506,10 @@ autogroup_add_members_from_filter( Operation *op, Entry *e, autogroup_entry_t *a
|
||||
Debug(LDAP_DEBUG_TRACE, "==> autogroup_add_members_from_filter <%s>\n",
|
||||
age->age_dn.bv_val );
|
||||
|
||||
/* if modify isn't set, we're pre-op and should honor abandon flag */
|
||||
if ( op->o_abandon && !modify )
|
||||
return 0;
|
||||
|
||||
o.ors_attrsonly = 0;
|
||||
o.o_tag = LDAP_REQ_SEARCH;
|
||||
|
||||
@ -520,6 +528,7 @@ autogroup_add_members_from_filter( Operation *op, Entry *e, autogroup_entry_t *a
|
||||
o.ors_slimit = SLAP_NO_LIMIT;
|
||||
o.ors_attrs = agf->agf_anlist ? agf->agf_anlist : slap_anlist_no_attrs;
|
||||
o.o_do_not_cache = 1;
|
||||
o.o_abandon = 0;
|
||||
|
||||
agg.agg_group = age;
|
||||
agg.agg_filter = agf;
|
||||
@ -562,6 +571,7 @@ autogroup_add_members_from_filter( Operation *op, Entry *e, autogroup_entry_t *a
|
||||
o.o_permissive_modify = 1;
|
||||
o.o_dont_replicate = 1;
|
||||
o.orm_no_opattrs = 1;
|
||||
o.o_abandon = 0;
|
||||
|
||||
oex.oe_key = (void *)&autogroup;
|
||||
LDAP_SLIST_INSERT_HEAD( &o.o_extra, &oex, oe_next );
|
||||
|
@ -388,6 +388,10 @@ memberof_value_modify(
|
||||
op2.orm_no_opattrs = 1;
|
||||
op2.o_dont_replicate = 1;
|
||||
|
||||
/* main op has already completed if we got here, so even
|
||||
* if its abandon flag was set we must complete as well. */
|
||||
op2.o_abandon = 0;
|
||||
|
||||
if ( !BER_BVISNULL( &mo->mo_ndn ) ) {
|
||||
ml = &mod[ mcnt ];
|
||||
ml->sml_numvals = 1;
|
||||
|
@ -604,6 +604,7 @@ refint_repair(
|
||||
op->o_ndn = op->o_bd->be_rootndn;
|
||||
cache = op->o_do_not_cache;
|
||||
op->o_do_not_cache = 1;
|
||||
op->o_abandon = 0;
|
||||
|
||||
/* search */
|
||||
rc = op->o_bd->be_search( op, &rs );
|
||||
|
Loading…
x
Reference in New Issue
Block a user