From 379dd48ea385a1104ac787863d1c429a8ecd2204 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Wed, 3 Sep 2008 23:51:53 +0000 Subject: [PATCH] ITS#5675 --- CHANGES | 1 + servers/slapd/syncrepl.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 490b33a345..209affae24 100644 --- a/CHANGES +++ b/CHANGES @@ -11,6 +11,7 @@ OpenLDAP 2.4.12 Engineering Fixed slapd overlay control registration (ITS#5649) Fixed slapd socket closing on Windows (ITS#5606) Fixed slapd sortvals comparison (ITS#5578) + Fixed slapd syncrepl contextCSN detection (ITS#5675) Fixed slapd syncrepl error logging (ITS#5618) Fixed slapd-bdb entry return if attr not present (ITS#5650) Fixed slapd-ldap,slapd-meta invalid filter behavior (ITS#5614) diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 4378ee9383..a921453294 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -473,7 +473,7 @@ check_syncprov( for ( i=0; i<num; i++ ) { if ( ber_bvcmp( &a.a_nvals[i], &si->si_cookieState->cs_vals[i] )) { - changed =1; + changed = 1; break; } } @@ -2770,8 +2770,13 @@ syncrepl_updateCookie( if ( memcmp( syncCookie->ctxcsn[i].bv_val, si->si_cookieState->cs_vals[j].bv_val, len ) > 0 ) { mod.sml_values[j] = syncCookie->ctxcsn[i]; - if ( BER_BVISNULL( &first )) + if ( BER_BVISNULL( &first ) ) { + first = syncCookie->ctxcsn[i]; + + } else if ( memcmp( syncCookie->ctxcsn[i].bv_val, first.bv_val, first.bv_len ) > 0 ) + { first = syncCookie->ctxcsn[i]; + } } break; } @@ -2781,8 +2786,12 @@ syncrepl_updateCookie( ( mod.sml_numvals+2 )*sizeof(struct berval), op->o_tmpmemctx ); mod.sml_values[mod.sml_numvals++] = syncCookie->ctxcsn[i]; BER_BVZERO( &mod.sml_values[mod.sml_numvals] ); - if ( BER_BVISNULL( &first )) + if ( BER_BVISNULL( &first ) ) { + first = syncCookie->ctxcsn[i]; + } else if ( memcmp( syncCookie->ctxcsn[i].bv_val, first.bv_val, first.bv_len ) > 0 ) + { first = syncCookie->ctxcsn[i]; + } } } /* Should never happen, ITS#5065 */ -- GitLab