]> git.sur5r.net Git - openldap/commitdiff
ITS#6532
authorQuanah Gibson-Mount <quanah@openldap.org>
Mon, 3 Jan 2011 23:47:12 +0000 (23:47 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 3 Jan 2011 23:47:12 +0000 (23:47 +0000)
CHANGES
servers/slapd/schema_init.c

diff --git a/CHANGES b/CHANGES
index 57f793a63584f1919b50c05615676aecee7b8a7d..f793a460d2117a990f54c7974d4a34a5cff6e730 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -23,6 +23,7 @@ OpenLDAP 2.4.24 Engineering
        Fixed slapd to free controls if needed (ITS#6629)
        Fixed slapd filter leak (ITS#6635)
        Fixed slapd matching rules for strict ordering (ITS#6722)
+       Fixed slapd extensible match for ordering rules (ITS#6532)
        Fixed slapd when first acl is value dependent (ITS#6693)
        Fixed slapd modify to return actual error (ITS#6581)
        Fixed slapd sortvals of attributes with 1 value (ITS#6715)
index c7c00cd4ff1056b537dabb539f2010fc4acf94da..a6137e3741dc52c82598204a38ae7aeb21044d8b 100644 (file)
@@ -514,6 +514,9 @@ octetStringOrderingMatch(
                        ? (int) v_len - (int) av_len
                        : v_len < av_len ? -1 : v_len > av_len;
 
+       if ( flags & SLAP_MR_EXT )
+               match = (match >= 0);
+
        *matchp = match;
        return LDAP_SUCCESS;
 }
@@ -2413,6 +2416,9 @@ integerMatch(
                if( vsign < 0 ) match = -match;
        }
 
+       if ( (flags & SLAP_MR_EXT) && (mr->smr_usage & SLAP_MR_ORDERING) )
+               match = (match >= 0);
+
        *matchp = match;
        return LDAP_SUCCESS;
 }
@@ -5617,6 +5623,9 @@ generalizedTimeOrderingMatch(
                (v_len < av_len ? v_len : av_len) - 1 );
        if ( match == 0 ) match = v_len - av_len;
 
+       if ( flags & SLAP_MR_EXT )
+               match = (match >= 0);
+
        *matchp = match;
        return LDAP_SUCCESS;
 }
@@ -6390,7 +6399,7 @@ static slap_mrule_defs_rec mrule_defs[] = {
 
        {"( 2.5.13.3 NAME 'caseIgnoreOrderingMatch' "
                "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
-               SLAP_MR_ORDERING, directoryStringSyntaxes,
+               SLAP_MR_ORDERING | SLAP_MR_EXT, directoryStringSyntaxes,
                NULL, UTF8StringNormalize, octetStringOrderingMatch,
                NULL, NULL,
                "caseIgnoreMatch" },
@@ -6411,7 +6420,7 @@ static slap_mrule_defs_rec mrule_defs[] = {
 
        {"( 2.5.13.6 NAME 'caseExactOrderingMatch' "
                "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
-               SLAP_MR_ORDERING, directoryStringSyntaxes,
+               SLAP_MR_ORDERING | SLAP_MR_EXT, directoryStringSyntaxes,
                NULL, UTF8StringNormalize, octetStringOrderingMatch,
                NULL, NULL,
                "caseExactMatch" },
@@ -6432,7 +6441,7 @@ static slap_mrule_defs_rec mrule_defs[] = {
 
        {"( 2.5.13.9 NAME 'numericStringOrderingMatch' "
                "SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 )",
-               SLAP_MR_ORDERING, NULL,
+               SLAP_MR_ORDERING | SLAP_MR_EXT, NULL,
                NULL, numericStringNormalize, octetStringOrderingMatch,
                NULL, NULL,
                "numericStringMatch" },
@@ -6473,7 +6482,7 @@ static slap_mrule_defs_rec mrule_defs[] = {
 
        {"( 2.5.13.15 NAME 'integerOrderingMatch' "
                "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )",
-               SLAP_MR_ORDERING | SLAP_MR_ORDERED_INDEX, NULL,
+               SLAP_MR_ORDERING | SLAP_MR_EXT | SLAP_MR_ORDERED_INDEX, NULL,
                NULL, NULL, integerMatch,
                NULL, NULL,
                "integerMatch" },
@@ -6494,7 +6503,7 @@ static slap_mrule_defs_rec mrule_defs[] = {
 
        {"( 2.5.13.18 NAME 'octetStringOrderingMatch' "
                "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
-               SLAP_MR_ORDERING, NULL,
+               SLAP_MR_ORDERING | SLAP_MR_EXT, NULL,
                NULL, NULL, octetStringOrderingMatch,
                NULL, NULL,
                "octetStringMatch" },
@@ -6547,7 +6556,7 @@ static slap_mrule_defs_rec mrule_defs[] = {
 
        {"( 2.5.13.28 NAME 'generalizedTimeOrderingMatch' "
                "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )",
-               SLAP_MR_ORDERING | SLAP_MR_ORDERED_INDEX, NULL,
+               SLAP_MR_ORDERING | SLAP_MR_EXT | SLAP_MR_ORDERED_INDEX, NULL,
                NULL, generalizedTimeNormalize, generalizedTimeOrderingMatch,
                NULL, NULL,
                "generalizedTimeMatch" },