- return LDAP_SUCCESS;
-}
-
-#else
-static int
-add_modified_attrs( Operation *op, Modifications **modlist )
-{
- char buf[22];
- struct berval bv;
- struct berval *bvals[2];
- Modifications *m;
- struct tm *ltm;
- time_t currenttime;
-
- bvals[0] = &bv;
- bvals[1] = NULL;
-
- /* remove any attempts by the user to modify these attrs */
- for ( m = *modlist; m != NULL; m = m->ml_next ) {
- if ( oc_check_op_no_usermod_attr( m->ml_type ) ) {
- return LDAP_CONSTRAINT_VIOLATION;
- }
- }
-
- if ( op->o_dn == NULL || op->o_dn[0] == '\0' ) {
- bv.bv_val = "<anonymous>";
- bv.bv_len = sizeof("<anonymous>")-1;
- } else {
- bv.bv_val = op->o_dn;
- bv.bv_len = strlen( bv.bv_val );
- }
- m = (Modifications *) ch_calloc( 1, sizeof(Modifications) );
- m->ml_type = ch_strdup( "modifiersname" );
- m->ml_op = LDAP_MOD_REPLACE;
- m->ml_bvalues = (struct berval **) ch_calloc(2, sizeof(struct berval *));
- m->ml_bvalues[0] = ber_bvdup( &bv );
- m->ml_next = *modlist;
- *modlist = m;
-
- currenttime = slap_get_time();
- ldap_pvt_thread_mutex_lock( &gmtime_mutex );
- ltm = gmtime( ¤ttime );
- strftime( buf, sizeof(buf), "%Y%m%d%H%M%SZ", ltm );
- ldap_pvt_thread_mutex_unlock( &gmtime_mutex );
-
- bv.bv_val = buf;
- bv.bv_len = strlen( bv.bv_val );
- m = (Modifications *) ch_calloc( 1, sizeof(Modifications) );
- m->ml_type = ch_strdup( "modifytimestamp" );
- m->ml_op = LDAP_MOD_REPLACE;
- m->ml_bvalues = (struct berval **) ch_calloc(2, sizeof(struct berval *));
- m->ml_bvalues[0] = ber_bvdup( &bv );
- m->ml_next = *modlist;
- *modlist = m;
+ mod = (Modifications *) ch_calloc( 1, sizeof( Modifications ) );
+ mod->sml_op = mop;
+ mod->sml_desc = ad_dup( slap_schema.si_ad_modifiersName );
+ mod->sml_bvalues = (struct berval **) malloc( 2 * sizeof( struct berval * ) );
+ mod->sml_bvalues[0] = ber_bvdup( &name );
+ mod->sml_bvalues[1] = NULL;
+ *modtail = mod;
+ modtail = &mod->sml_next;
+
+ mod = (Modifications *) ch_calloc( 1, sizeof( Modifications ) );
+ mod->sml_op = mop;
+ mod->sml_desc = ad_dup( slap_schema.si_ad_modifyTimestamp );
+ mod->sml_bvalues = (struct berval **) malloc( 2 * sizeof( struct berval * ) );
+ mod->sml_bvalues[0] = ber_bvdup( ×tamp );
+ mod->sml_bvalues[1] = NULL;
+ *modtail = mod;
+ modtail = &mod->sml_next;