From: Quanah Gibson-Mount Date: Wed, 28 May 2008 18:35:32 +0000 (+0000) Subject: ITS#5488 X-Git-Tag: OPENLDAP_REL_ENG_2_4_10~11 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f7eb5e33745e70ba20558991eb8b2f94174794fe;p=openldap ITS#5488 --- diff --git a/CHANGES b/CHANGES index 228943c76d..cfbad59360 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,7 @@ OpenLDAP 2.4.10 Engineering Fixed slapd-ldap entry_get() op-dependent behavior (ITS#5513) Fixed slapd-meta quarantine crasher (ITS#5522) Fixed slapo-refint to allow setting modifiers name (ITS#5505) + Fixed slapo-syncprov contextCSN passing on syncprov consumers (ITS#5488) Fixed slapo-syncprov csn update with delta-syncrepl (ITS#5493) Fixed slapo-syncprov op2.o_extra reset (ITS#5501, #5506) Fixed slapo-syncprov searching wrong backend (ITS#5487) diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index 7209b7d473..21b44ef794 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -1596,6 +1596,17 @@ syncprov_op_response( Operation *op, SlapReply *rs ) cbuf[0] = '\0'; ldap_pvt_thread_rdwr_wlock( &si->si_csn_rwlock ); slap_get_commit_csn( op, &maxcsn ); + if ( BER_BVISNULL( &maxcsn ) && SLAP_GLUE_SUBORDINATE( op->o_bd )) { + /* syncrepl queues the CSN values in the db where + * it is configured , not where the changes are made. + * So look for a value in the glue db if we didn't + * find any in this db. + */ + BackendDB *be = op->o_bd; + op->o_bd = select_backend( &be->be_nsuffix[0], 1); + slap_get_commit_csn( op, &maxcsn ); + op->o_bd = be; + } if ( !BER_BVISNULL( &maxcsn ) ) { int i, sid; strcpy( cbuf, maxcsn.bv_val );