mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
SLAP_NVALUES: A couple of more normalizers...
This commit is contained in:
parent
16c9e81c80
commit
208971a65f
@ -56,7 +56,6 @@
|
||||
#define objectIdentifierNormalize NULL
|
||||
#define objectIdentifierFirstComponentNormalize NULL
|
||||
#define generalizedTimeNormalize NULL
|
||||
#define uniqueMemberNormalize NULL
|
||||
#define bitStringNormalize NULL
|
||||
#define telephoneNumberNormalize NULL
|
||||
|
||||
@ -65,7 +64,7 @@
|
||||
#define distinguishedNameIndexer octetStringIndexer
|
||||
#define distinguishedNameFilter octetStringFilter
|
||||
|
||||
#define uniqueMemberMatch dnMatch
|
||||
#define uniqueMemberMatch dnMatch
|
||||
|
||||
#define objectIdentifierMatch octetStringMatch
|
||||
#define objectIdentifierIndexer octetStringIndexer
|
||||
@ -90,7 +89,7 @@
|
||||
#define caseIgnoreIndexer octetStringIndexer
|
||||
#define caseIgnoreFilter octetStringFilter
|
||||
|
||||
#define caseIgnoreSubstringsMatch SubstringsMatch
|
||||
#define caseIgnoreSubstringsMatch octetStringSubstringsMatch
|
||||
#define caseIgnoreSubstringsIndexer NULL
|
||||
#define caseIgnoreSubstringsFilter NULL
|
||||
|
||||
@ -99,7 +98,7 @@
|
||||
#define caseExactIndexer octetStringIndexer
|
||||
#define caseExactFilter octetStringFilter
|
||||
|
||||
#define caseExactSubstringsMatch NULL
|
||||
#define caseExactSubstringsMatch octetStringSubstringsMatch
|
||||
#define caseExactSubstringsIndexer NULL
|
||||
#define caseExactSubstringsFilter NULL
|
||||
|
||||
@ -107,7 +106,7 @@
|
||||
#define caseExactIA5Indexer octetStringIndexer
|
||||
#define caseExactIA5Filter octetStringFilter
|
||||
|
||||
#define caseExactIA5SubstringsMatch NULL
|
||||
#define caseExactIA5SubstringsMatch octetStringSubstringsMatch
|
||||
#define caseExactIA5SubstringsIndexer NULL
|
||||
#define caseExactIA5SubstringsFilter NULL
|
||||
|
||||
@ -191,7 +190,8 @@
|
||||
#define objectIdentifierIndexer caseIgnoreIA5Indexer
|
||||
#define objectIdentifierFilter caseIgnoreIA5Filter
|
||||
|
||||
#define OpenLDAPaciMatch NULL
|
||||
#define octetStringSubstringsMatch NULL
|
||||
#define OpenLDAPaciMatch NULL
|
||||
|
||||
#define generalizedTimeMatch caseIgnoreIA5Match
|
||||
#define generalizedTimeOrderingMatch caseIgnoreIA5Match
|
||||
@ -486,13 +486,21 @@ nameUIDValidate(
|
||||
return rc;
|
||||
}
|
||||
|
||||
#ifndef SLAP_NVALUES
|
||||
|
||||
#ifdef SLAP_NVALUES
|
||||
static int
|
||||
uniqueMemberNormalize(
|
||||
slap_mask_t usage,
|
||||
Syntax *syntax,
|
||||
MatchingRule *mr,
|
||||
struct berval *val,
|
||||
struct berval *normalized )
|
||||
#else
|
||||
static int
|
||||
xnameUIDNormalize(
|
||||
Syntax *syntax,
|
||||
struct berval *val,
|
||||
struct berval *normalized )
|
||||
#endif
|
||||
{
|
||||
struct berval out;
|
||||
int rc;
|
||||
@ -548,7 +556,6 @@ xnameUIDNormalize(
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
#endif
|
||||
/*
|
||||
* Handling boolean syntax and matching is quite rigid.
|
||||
* A more flexible approach would be to allow a variety
|
||||
@ -2497,7 +2504,7 @@ static int
|
||||
caseExactIA5SubstringsMatch
|
||||
#else
|
||||
static int
|
||||
SubstringsMatch
|
||||
octetStringSubstringsMatch
|
||||
#endif
|
||||
(
|
||||
int *matchp,
|
||||
@ -2532,7 +2539,7 @@ SubstringsMatch
|
||||
goto done;
|
||||
}
|
||||
|
||||
match = strncmp( sub->sa_initial.bv_val, left.bv_val,
|
||||
match = memcmp( sub->sa_initial.bv_val, left.bv_val,
|
||||
sub->sa_initial.bv_len );
|
||||
|
||||
if( match != 0 ) {
|
||||
@ -2550,7 +2557,7 @@ SubstringsMatch
|
||||
goto done;
|
||||
}
|
||||
|
||||
match = strncmp( sub->sa_final.bv_val,
|
||||
match = memcmp( sub->sa_final.bv_val,
|
||||
&left.bv_val[left.bv_len - sub->sa_final.bv_len],
|
||||
sub->sa_final.bv_len );
|
||||
|
||||
@ -2578,7 +2585,7 @@ retry:
|
||||
continue;
|
||||
}
|
||||
|
||||
p = strchr( left.bv_val, *sub->sa_any[i].bv_val );
|
||||
p = memchr( left.bv_val, *sub->sa_any[i].bv_val, left.bv_len );
|
||||
|
||||
if( p == NULL ) {
|
||||
match = 1;
|
||||
@ -2601,7 +2608,7 @@ retry:
|
||||
goto done;
|
||||
}
|
||||
|
||||
match = strncmp( left.bv_val,
|
||||
match = memcmp( left.bv_val,
|
||||
sub->sa_any[i].bv_val,
|
||||
sub->sa_any[i].bv_len );
|
||||
|
||||
@ -4749,7 +4756,6 @@ char *objectIdentifierFirstComponentMatchSyntaxes[] = {
|
||||
* Other matching rules in X.520 that we do not use (yet):
|
||||
*
|
||||
* 2.5.13.9 numericStringOrderingMatch
|
||||
* 2.5.13.19 octetStringSubstringsMatch
|
||||
* 2.5.13.25 uTCTimeMatch
|
||||
* 2.5.13.26 uTCTimeOrderingMatch
|
||||
* 2.5.13.31 directoryStringFirstComponentMatch
|
||||
@ -4920,6 +4926,13 @@ static slap_mrule_defs_rec mrule_defs[] = {
|
||||
octetStringOrderingMatch, NULL, NULL,
|
||||
NULL},
|
||||
|
||||
{"( 2.5.13.19 NAME 'octetStringSubstringsMatch' "
|
||||
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
|
||||
SLAP_MR_SUBSTR, NULL,
|
||||
NULL, NULL,
|
||||
octetStringSubstringsMatch, NULL, NULL,
|
||||
NULL},
|
||||
|
||||
{"( 2.5.13.20 NAME 'telephoneNumberMatch' "
|
||||
"SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )",
|
||||
SLAP_MR_EQUALITY | SLAP_MR_EXT | SLAP_MR_DN_FOLD, NULL,
|
||||
|
Loading…
Reference in New Issue
Block a user