소스 검색

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 년 전
부모
커밋
6160200187
2개의 변경된 파일1개의 추가작업 그리고 21개의 파일을 삭제
  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;