浏览代码

Trac Ticket #346 - Slow ldapmodify operation time for large
quantities of multi-valued attribute values

https://fedorahosted.org/389/ticket/346

Fix Description: When comparing dn syntax attribute values (e.g.,
member in a group) with filter values, filter values are case-
lowered, but the attribute values in an entry are not any more.
This patch lowers the case before the comparison in the syntax
plugin.
(cherry picked from commit 091166e8c0642380d96cb495e30471b0bb4a5c94)

Noriko Hosoi 13 年之前
父节点
当前提交
6237131879
共有 2 个文件被更改,包括 3 次插入1 次删除
  1. 1 1
      ldap/servers/plugins/referint/referint.c
  2. 2 0
      ldap/servers/plugins/syntaxes/string.c

+ 1 - 1
ldap/servers/plugins/referint/referint.c

@@ -193,7 +193,7 @@ referint_postop_del( Slapi_PBlock *pb )
 	
     if(argv == NULL){
         slapi_log_error( SLAPI_LOG_FATAL, REFERINT_PLUGIN_SUBSYSTEM,
-            "referint_postop_modrdn, args are NULL\n" );
+            "referint_postop_del, args are NULL\n" );
         return( -1 );
     }
 	

+ 2 - 0
ldap/servers/plugins/syntaxes/string.c

@@ -390,6 +390,8 @@ string_filter_sub( Slapi_PBlock *pb, char *initial, char **any, char *final,
 		/* 3rd arg: 1 - trim leading blanks */
 		if (!(slapi_value_get_flags(bvals[j]) & SLAPI_ATTR_FLAG_NORMALIZED)) {
 			value_normalize_ext( realval, syntax, 1, &alt );
+		} else if (syntax & SYNTAX_DN) {
+			slapi_dn_ignore_case(realval);
 		}
 		if (alt) {
 			tmprc = slapi_re_exec( re, alt, time_up );