diff --git a/servers/slapd/ctxcsn.c b/servers/slapd/ctxcsn.c index ce6356ab42f39267c898f6b94225ec6bbcd511e5..23a54af7fd67508a4e8ffb488b714a250fe1ea6a 100644 --- a/servers/slapd/ctxcsn.c +++ b/servers/slapd/ctxcsn.c @@ -33,7 +33,8 @@ int slap_serverID; void slap_get_commit_csn( Operation *op, - struct berval *maxcsn + struct berval *maxcsn, + int *foundit ) { struct slap_csn_entry *csne, *committed_csne = NULL; @@ -42,12 +43,16 @@ slap_get_commit_csn( if ( maxcsn ) { BER_BVZERO( maxcsn ); } + if ( foundit ) { + *foundit = 0; + } ldap_pvt_thread_mutex_lock( &be->be_pcl_mutex ); LDAP_TAILQ_FOREACH( csne, be->be_pending_csn_list, ce_csn_link ) { if ( csne->ce_opid == op->o_opid && csne->ce_connid == op->o_connid ) { csne->ce_state = SLAP_CSN_COMMIT; + if ( foundit ) *foundit = 1; break; } } diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index 3999334aa369f14617f77eecbe5471d5c07dccfb..1d08b5488ab10147ab7b1e5e25f91ac630d87df3 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -804,7 +804,7 @@ LDAP_SLAPD_V( int ) slap_serverID; LDAP_SLAPD_V( const struct berval ) slap_ldapsync_bv; LDAP_SLAPD_V( const struct berval ) slap_ldapsync_cn_bv; LDAP_SLAPD_F (void) slap_get_commit_csn LDAP_P(( - Operation *, struct berval *maxcsn )); + Operation *, struct berval *maxcsn, int *foundit )); LDAP_SLAPD_F (void) slap_rewind_commit_csn LDAP_P(( Operation * )); LDAP_SLAPD_F (void) slap_graduate_commit_csn LDAP_P(( Operation * )); LDAP_SLAPD_F (Entry *) slap_create_context_csn_entry LDAP_P(( Backend *, struct berval *));