]> git.sur5r.net Git - openldap/commitdiff
ITS#4567 use unique timestamps for ops for cascading delta-sync
authorHoward Chu <hyc@openldap.org>
Sat, 27 May 2006 10:26:15 +0000 (10:26 +0000)
committerHoward Chu <hyc@openldap.org>
Sat, 27 May 2006 10:26:15 +0000 (10:26 +0000)
servers/slapd/syncrepl.c

index de322be98fad93ff755c7fba5b7dc78b8fb07b1f..e9c1cd18e934eb294b5653dcc2f2f0fb251e048a 100644 (file)
@@ -1350,6 +1350,7 @@ syncrepl_message_to_op(
        }
 
        op->o_callback = &cb;
+       slap_op_time( &op->o_time, &op->o_tincr );
 
        switch( op->o_tag ) {
        case LDAP_REQ_ADD:
@@ -1770,6 +1771,7 @@ syncrepl_entry(
                }
        }
 
+       slap_op_time( &op->o_time, &op->o_tincr );
        switch ( syncstate ) {
        case LDAP_SYNC_ADD:
        case LDAP_SYNC_MODIFY:
@@ -1848,6 +1850,7 @@ retry_add:;
                                        if ( rc ) goto done;
 
                                        retry = 0;
+                                       slap_op_time( &op->o_time, &op->o_tincr );
                                        goto retry_add;
                                }
                                /* FALLTHRU */
@@ -1893,6 +1896,8 @@ retry_add:;
                        } else {
                                goto done;
                        }
+                       if ( dni.wasChanged )
+                               slap_op_time( &op->o_time, &op->o_tincr );
                }
                if ( dni.wasChanged ) {
                        Modifications *mod, *modhead = NULL;