mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-28 10:39:34 -05:00
Short-circuit backend_operational; sent entry's e_private doesn't belong
to the backend any more
This commit is contained in:
parent
c365ac359e
commit
993fbf4514
1 changed files with 13 additions and 0 deletions
|
|
@ -981,6 +981,7 @@ syncprov_qtask( void *ctx, void *arg )
|
|||
Operation *op;
|
||||
BackendDB be;
|
||||
int rc;
|
||||
OpExtra oex;
|
||||
|
||||
op = &opbuf.ob_op;
|
||||
*op = *so->s_op;
|
||||
|
|
@ -999,6 +1000,11 @@ syncprov_qtask( void *ctx, void *arg )
|
|||
be.be_flags |= SLAP_DBFLAG_OVERLAY;
|
||||
op->o_bd = &be;
|
||||
LDAP_SLIST_FIRST(&op->o_extra) = NULL;
|
||||
|
||||
/* Let syncprov_operational know it's us */
|
||||
oex.oe_key = (void *)syncprov_qtask;
|
||||
LDAP_SLIST_INSERT_HEAD(&op->o_extra, &oex, oe_next);
|
||||
|
||||
op->o_callback = NULL;
|
||||
|
||||
rc = syncprov_qplay( op, so );
|
||||
|
|
@ -2631,6 +2637,13 @@ syncprov_operational(
|
|||
{
|
||||
slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
|
||||
syncprov_info_t *si = (syncprov_info_t *)on->on_bi.bi_private;
|
||||
OpExtra *oex;
|
||||
|
||||
/* short-circuit, don't want backends handling this */
|
||||
LDAP_SLIST_FOREACH(oex, &op->o_extra, oe_next) {
|
||||
if ( oex->oe_key == (void *)syncprov_qtask )
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
/* This prevents generating unnecessarily; frontend will strip
|
||||
* any statically stored copy.
|
||||
|
|
|
|||
Loading…
Reference in a new issue