version 1.147.2.79, 2011/01/03 22:37:33
|
version 1.147.2.80, 2011/01/03 22:39:18
|
Line 1819 syncprov_op_response( Operation *op, Sla
|
Line 1819 syncprov_op_response( Operation *op, Sla
|
ldap_pvt_thread_rdwr_wunlock( &si->si_csn_rwlock ); |
ldap_pvt_thread_rdwr_wunlock( &si->si_csn_rwlock ); |
|
|
if ( csn_changed ) { |
if ( csn_changed ) { |
|
syncops *ss; |
ldap_pvt_thread_mutex_lock( &si->si_ops_mutex ); |
ldap_pvt_thread_mutex_lock( &si->si_ops_mutex ); |
have_psearches = ( si->si_ops != NULL ); |
for ( ss = si->si_ops; ss; ss = ss->s_next ) { |
ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex ); |
if ( ss->s_op->o_abandon ) |
|
continue; |
if ( have_psearches ) { |
/* Send the updated csn to all syncrepl consumers, |
for ( sm = opc->smatches; sm; sm=sm->sm_next ) { |
* including the server from which it originated. |
if ( sm->sm_op->s_op->o_abandon ) |
* The syncrepl consumer and syncprov provider on |
continue; |
* the originating server may be configured to store |
syncprov_qresp( opc, sm->sm_op, LDAP_SYNC_NEW_COOKIE ); |
* their csn values in different entries. |
} |
*/ |
|
syncprov_qresp( opc, ss, LDAP_SYNC_NEW_COOKIE ); |
} |
} |
|
ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex ); |
} |
} |
} else { |
} else { |
ldap_pvt_thread_rdwr_wunlock( &si->si_csn_rwlock ); |
ldap_pvt_thread_rdwr_wunlock( &si->si_csn_rwlock ); |