Explorar o código

Ticket 47411 - Replace substring search with plain search in referint plugin

Bug Description:  RI plugin uses a substring search by default, which is much more
                  expensive than an equality search filter.

Fix Description:  Only use the substring search if the operation is a modrdn.

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

Reveiwed by: richm(Thanks!)
Mark Reynolds %!s(int64=12) %!d(string=hai) anos
pai
achega
a5dde495a7
Modificáronse 1 ficheiros con 6 adicións e 1 borrados
  1. 6 1
      ldap/servers/plugins/referint/referint.c

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

@@ -742,7 +742,12 @@ update_integrity(char **argv, Slapi_DN *origSDN,
         search_base = slapi_sdn_get_dn( sdn );
 
         for(i = 3; argv[i] != NULL; i++){
-            filter = slapi_filter_sprintf("(%s=*%s%s)", argv[i], ESC_NEXT_VAL, origDN);
+            if(newrDN){
+                /* we need to check the children of the old dn, so use a wildcard */
+                filter = slapi_filter_sprintf("(%s=*%s%s)", argv[i], ESC_NEXT_VAL, origDN);
+            } else {
+                filter = slapi_filter_sprintf("(%s=%s%s)", argv[i], ESC_NEXT_VAL, origDN);
+            }
             if ( filter ) {
                 /* Need only the current attribute and its subtypes */
                 attrs[0] = argv[i];