ITS#6532 Support extensible match=...OrderingMatch

Handles:  caseExactOrderingMatch, generalizedTimeOrderingMatch,
         caseIgnoreOrderingMatch,         integerOrderingMatch,
        octetStringOrderingMatch,   numericStringOrderingMatch.
Based on patch from Daniel Pluta.
This commit is contained in:
Hallvard Furuseth 2010-11-24 13:10:29 +00:00
parent bc38ec228b
commit 5f2af361ba

View 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" },