From: Hallvard Furuseth Date: Wed, 24 Nov 2010 13:10:29 +0000 (+0000) Subject: ITS#6532 Support extensible match=...OrderingMatch X-Git-Tag: MIGRATION_CVS2GIT~398 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5f2af361bab97f29450b38df56cb5d2cc5676b45;p=openldap ITS#6532 Support extensible match=...OrderingMatch Handles: caseExactOrderingMatch, generalizedTimeOrderingMatch, caseIgnoreOrderingMatch, integerOrderingMatch, octetStringOrderingMatch, numericStringOrderingMatch. Based on patch from Daniel Pluta. --- diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c index c7c00cd4ff..a6137e3741 100644 --- a/servers/slapd/schema_init.c +++ b/servers/slapd/schema_init.c @@ -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" },