]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/mra.c
ITS#2368 - fix deleting key from range IDL
[openldap] / servers / slapd / mra.c
index 79c35c4674586753e0bf8f8b4bccb4624dde1a79..a8f2d7fcfd87f14f0832e85f3d843867cbe0ec93 100644 (file)
@@ -218,6 +218,7 @@ get_mra(
                        return LDAP_INAPPROPRIATE_MATCHING;
                }
 
+#ifndef SLAP_NVALUES
                /*
                 * OK, if no matching rule, normalize for equality, otherwise
                 * normalize for the matching rule.
@@ -232,8 +233,21 @@ get_mra(
                if ( rc == LDAP_SUCCESS ) {
                        ber_dupbv( &ma->ma_value, &value );
                }
+#endif
+       }
 
+#ifdef SLAP_NVALUES
+       /*
+        * Normalize per matching rule
+        */
+       rc = asserted_value_validate_normalize( ma->ma_desc,
+               ma->ma_rule,
+               SLAP_MR_EXT|SLAP_MR_VALUE_OF_ASSERTION_SYNTAX,
+               &ma->ma_value, &value, text );
+       if ( rc == LDAP_SUCCESS ) {
+               ber_dupbv( &ma->ma_value, &value );
        }
+#endif
 
        if( rc != LDAP_SUCCESS ) {
                mra_free( ma, 1 );