if ( lo->mask & LOG_OP_WRITES ) {
slap_callback *cb;
+
+ /* These internal ops are not logged */
+ if ( op->o_dont_replicate && op->orm_no_opattrs )
+ return SLAP_CB_CONTINUE;
+
ldap_pvt_thread_mutex_lock( &li->li_log_mutex );
old = li->li_old;
li->li_old = NULL;
slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
log_info *li = on->on_bi.bi_private;
+ /* These internal ops are not logged */
+ if ( op->o_dont_replicate && op->orm_no_opattrs )
+ return SLAP_CB_CONTINUE;
+
if ( li->li_ops & LOG_OP_WRITES ) {
slap_callback *cb = op->o_tmpalloc( sizeof( slap_callback ), op->o_tmpmemctx ), *cb2;
cb->sc_cleanup = accesslog_mod_cleanup;
c.ldctl_iscritical = 1;
c.ldctl_oid = LDAP_CONTROL_RELAX;
} else {
- /* If not forwarding, don't update opattrs */
- if ( SLAP_SINGLE_SHADOW( op->o_bd ))
+ /* If not forwarding, don't update opattrs and don't replicate */
+ if ( SLAP_SINGLE_SHADOW( op->o_bd )) {
op2.orm_no_opattrs = 1;
+ op2.o_dont_replicate = 1;
+ }
op2.o_bd->bd_info = (BackendInfo *)on->on_info;
}
rc = op2.o_bd->be_modify( &op2, &r2 );