* 2) this backend is master for what it holds;
* 3) it's a replica and the dn supplied is the update_ndn.
*/
- if ( be->be_modify != NULL ) {
+ if ( be->be_modify ) {
/* do the update here */
if ( be->be_update_ndn == NULL ||
strcmp( be->be_update_ndn, op->o_ndn ) == 0 )
LDAPModList **m;
LDAPModList *tmp;
struct tm *ltm;
+ time_t currenttime;
Debug( LDAP_DEBUG_TRACE, "add_lastmods\n", 0, 0, 0 );
tmp = (LDAPModList *) ch_calloc( 1, sizeof(LDAPModList) );
tmp->ml_type = ch_strdup( "modifiersname" );
tmp->ml_op = LDAP_MOD_REPLACE;
- tmp->ml_bvalues = (struct berval **) ch_calloc( 1,
- 2 * sizeof(struct berval *) );
+ tmp->ml_bvalues = (struct berval **) ch_calloc(2, sizeof(struct berval *));
tmp->ml_bvalues[0] = ber_bvdup( &bv );
tmp->ml_next = *modlist;
*modlist = tmp;
- ldap_pvt_thread_mutex_lock( ¤ttime_mutex );
+ currenttime = slap_get_time();
+ ldap_pvt_thread_mutex_lock( &gmtime_mutex );
#ifndef LDAP_LOCALTIME
ltm = gmtime( ¤ttime );
strftime( buf, sizeof(buf), "%Y%m%d%H%M%SZ", ltm );
ltm = localtime( ¤ttime );
strftime( buf, sizeof(buf), "%y%m%d%H%M%SZ", ltm );
#endif
- ldap_pvt_thread_mutex_unlock( ¤ttime_mutex );
+ ldap_pvt_thread_mutex_unlock( &gmtime_mutex );
+
bv.bv_val = buf;
bv.bv_len = strlen( bv.bv_val );
tmp = (LDAPModList *) ch_calloc( 1, sizeof(LDAPModList) );
tmp->ml_type = ch_strdup( "modifytimestamp" );
tmp->ml_op = LDAP_MOD_REPLACE;
- tmp->ml_bvalues = (struct berval **) ch_calloc( 1, 2 * sizeof(struct berval *) );
+ tmp->ml_bvalues = (struct berval **) ch_calloc(2, sizeof(struct berval *));
tmp->ml_bvalues[0] = ber_bvdup( &bv );
tmp->ml_next = *modlist;
*modlist = tmp;