Selaa lähdekoodia

Bug 305131 - Allow empty modify operation

This patch allows an empty modify operation.  We currently reject
an empty modify operation, but this patch makes the empty operation
update the modifyTimestamp and modifiersName attributes similar to
a touch-type operation.
Nathan Kinder 15 vuotta sitten
vanhempi
sitoutus
6160200187
2 muutettua tiedostoa jossa 1 lisäystä ja 21 poistoa
  1. 1 3
      ldap/servers/slapd/back-ldbm/ldbm_modify.c
  2. 0 18
      ldap/servers/slapd/modify.c

+ 1 - 3
ldap/servers/slapd/back-ldbm/ldbm_modify.c

@@ -623,9 +623,7 @@ mods_have_effect (Slapi_Entry *entry, Slapi_Mods *smods)
 
 	if ( entry && entry->e_sdn.dn ) {
 		for ( j = 0; j < smods->num_mods - 1; j++ ) {
-			if ( ((mod = smods->mods[j]) != NULL) &&
-				 strcasecmp (mod->mod_type, "modifiersname") &&
-				 strcasecmp (mod->mod_type, "modifytime") ) {
+			if ((mod = smods->mods[j]) != NULL) {
 				for ( attr = entry->e_attrs; attr; attr = attr->a_next ) {
 					/* Mods have effect if at least a null-value-mod is
 					 * to actually remove an existing attribute

+ 0 - 18
ldap/servers/slapd/modify.c

@@ -341,24 +341,6 @@ do_modify( Slapi_PBlock *pb )
 		goto free_and_return;
 	}
 
-	/* see if there were actually any mods to perform */
-	if ( slapi_mods_get_num_mods (&smods) == 0 )
-	{
-		int		lderr;
-		char	*emsg;
-
-		if ( ignored_some_mods ) {
-			lderr = LDAP_UNWILLING_TO_PERFORM;
-			emsg = "no modifiable attributes specified";
-		} else {
-			lderr = LDAP_PROTOCOL_ERROR;
-			emsg = "no modifications specified";
-		}
-		op_shared_log_error_access (pb, "MOD", dn, emsg);
-		send_ldap_result( pb, lderr, NULL, emsg, 0, NULL );
-		goto free_and_return;
-	}
-
 #ifdef LDAP_DEBUG
 	LDAPDebug( LDAP_DEBUG_ARGS, "modifications:\n", 0, 0, 0 );
 	for (mod = slapi_mods_get_first_mod(&smods); mod != NULL;