mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
More for 1.124 - forwarded updates need Relax control since state attrs
are no-user-mod.
This commit is contained in:
parent
638cedebb3
commit
c29b1a53b2
1 changed files with 13 additions and 2 deletions
|
|
@ -1135,6 +1135,7 @@ locked:
|
|||
SlapReply r2 = { REP_RESULT };
|
||||
slap_callback cb = { NULL, slap_null_cb, NULL, NULL };
|
||||
pp_info *pi = on->on_bi.bi_private;
|
||||
LDAPControl c, *ca[2];
|
||||
|
||||
op2.o_tag = LDAP_REQ_MODIFY;
|
||||
op2.o_callback = &cb;
|
||||
|
|
@ -1148,10 +1149,20 @@ locked:
|
|||
* chain overlay. Obviously the updateref and chain overlay
|
||||
* must be configured appropriately for this to be useful.
|
||||
*/
|
||||
if ( SLAP_SHADOW( op->o_bd ) && pi->forward_updates )
|
||||
if ( SLAP_SHADOW( op->o_bd ) && pi->forward_updates ) {
|
||||
op2.o_bd = frontendDB;
|
||||
else
|
||||
|
||||
/* Must use Relax control since these are no-user-mod */
|
||||
op2.o_relax = SLAP_CONTROL_CRITICAL;
|
||||
op2.o_ctrls = ca;
|
||||
ca[0] = &c;
|
||||
ca[1] = NULL;
|
||||
BER_BVZERO( &c.ldctl_value );
|
||||
c.ldctl_iscritical = 1;
|
||||
c.ldctl_oid = LDAP_CONTROL_RELAX;
|
||||
} else {
|
||||
op2.o_bd->bd_info = (BackendInfo *)on->on_info;
|
||||
}
|
||||
rc = op2.o_bd->be_modify( &op2, &r2 );
|
||||
slap_mods_free( mod, 1 );
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue