From 47d401ce14abedc7d1ebf7f20e6d43ec036de011 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Mon, 3 Jan 2011 23:39:18 +0000 Subject: [PATCH] ITS#6718 --- CHANGES | 1 + servers/slapd/overlays/syncprov.c | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CHANGES b/CHANGES index efa5da3ddc..49c39d79a6 100644 --- a/CHANGES +++ b/CHANGES @@ -51,6 +51,7 @@ OpenLDAP 2.4.24 Engineering Fixed slapo-syncprov filter race condition (ITS#6708) Fixed slapo-syncprov active mod race (ITS#6709) Fixed slapo-syncprov to refresh if context is dirty (ITS#6710) + Fixed slapo-syncprov CSN updates to all replicas (ITS#6718) Fixed contrib/autogroup LDAP URI with attribute filter (ITS#6536) Fixed contrib/nssov to only close socket on shutdown (ITS#6676) Fixed contrib/nssov multi platform support (ITS#6604) diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index 7fd374f016..c9b5e5bd25 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -1819,17 +1819,20 @@ syncprov_op_response( Operation *op, SlapReply *rs ) ldap_pvt_thread_rdwr_wunlock( &si->si_csn_rwlock ); if ( csn_changed ) { + syncops *ss; ldap_pvt_thread_mutex_lock( &si->si_ops_mutex ); - have_psearches = ( si->si_ops != NULL ); - ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex ); - - if ( have_psearches ) { - for ( sm = opc->smatches; sm; sm=sm->sm_next ) { - if ( sm->sm_op->s_op->o_abandon ) - continue; - syncprov_qresp( opc, sm->sm_op, LDAP_SYNC_NEW_COOKIE ); - } + for ( ss = si->si_ops; ss; ss = ss->s_next ) { + if ( ss->s_op->o_abandon ) + continue; + /* Send the updated csn to all syncrepl consumers, + * including the server from which it originated. + * The syncrepl consumer and syncprov provider on + * the originating server may be configured to store + * their csn values in different entries. + */ + syncprov_qresp( opc, ss, LDAP_SYNC_NEW_COOKIE ); } + ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex ); } } else { ldap_pvt_thread_rdwr_wunlock( &si->si_csn_rwlock ); -- 2.39.5