(Quick)fix UUID naming attributes

This commit is contained in:
Kurt Zeilenga 2005-12-20 22:36:51 +00:00
parent adfa1f5918
commit 439af9ec10
7 changed files with 27 additions and 6 deletions

View File

@ -386,7 +386,9 @@ LDAPRDN_rewrite( LDAPRDN rdn, unsigned flags, void *ctx )
} else { /* normalization */
validf = ad->ad_type->sat_syntax->ssyn_validate;
mr = ad->ad_type->sat_equality;
if( mr ) normf = mr->smr_normalize;
if( mr && (!( mr->smr_usage & SLAP_MR_MUTATION_NORMALIZER ))) {
normf = mr->smr_normalize;
}
}
if ( validf ) {
@ -516,7 +518,9 @@ LDAPDN_rewrite( LDAPDN dn, unsigned flags, void *ctx )
} else { /* normalization */
validf = ad->ad_type->sat_syntax->ssyn_validate;
mr = ad->ad_type->sat_equality;
if( mr ) normf = mr->smr_normalize;
if( mr && (!( mr->smr_usage & SLAP_MR_MUTATION_NORMALIZER ))) {
normf = mr->smr_normalize;
}
}
if ( validf ) {

View File

@ -2187,7 +2187,7 @@ UUIDValidate(
return LDAP_SUCCESS;
}
static int
int
UUIDNormalize(
slap_mask_t usage,
Syntax *syntax,
@ -3873,14 +3873,14 @@ static slap_mrule_defs_rec mrule_defs[] = {
{"( 1.3.6.1.1.16.2 NAME 'UUIDMatch' "
"SYNTAX 1.3.6.1.1.16.1 )",
SLAP_MR_EQUALITY, NULL,
SLAP_MR_EQUALITY | SLAP_MR_MUTATION_NORMALIZER, NULL,
NULL, UUIDNormalize, octetStringMatch,
octetStringIndexer, octetStringFilter,
NULL},
{"( 1.3.6.1.1.16.3 NAME 'UUIDOrderingMatch' "
"SYNTAX 1.3.6.1.1.16.1 )",
SLAP_MR_ORDERING, NULL,
SLAP_MR_ORDERING | SLAP_MR_MUTATION_NORMALIZER, NULL,
NULL, UUIDNormalize, octetStringOrderingMatch,
octetStringIndexer, octetStringFilter,
"UUIDMatch"},

View File

@ -511,6 +511,8 @@ typedef struct slap_matching_rule {
#define SLAP_MR_HIDE 0x8000U
#endif
#define SLAP_MR_MUTATION_NORMALIZER 0x4000U
#define SLAP_MR_TYPE_MASK 0x0F00U
#define SLAP_MR_SUBTYPE_MASK 0x00F0U
#define SLAP_MR_USAGE 0x000FU

View File

@ -21,6 +21,7 @@ member: ou=Sales\3B Data\2BAlgorithms,dc=example,dc=net
member:: Y249QmVmb3JlDUFmdGVyLGRjPWV4YW1wbGUsZGM9bmV0
member: cn=\23John Smith\20,dc=example,dc=net
member:: Y249THXEjWnEhw==
member: testUUID=597ae2f6-16a6-1027-98f4-d28b5365dc14,dc=Example
seeAlso: cn=John Smith\2C III,dc=example,dc=net
seeAlso: ou=Sales\3B Data\2BAlgorithms,dc=example,dc=net
seeAlso: cn=\23John Smith\20,dc=example,dc=net
@ -40,6 +41,7 @@ description: CN=Before\0dAfter,DC=example,DC=net
description: CN=\23John Smith\20,DC=example,DC=net
description: CN=\#John Smith\ ,DC=example,DC=net
description: CN=Lu\C4\8Di\C4\87
description: testUUID=597ae2f6-16a6-1027-98f4-d28b5365dc14,DC=Example
dn: cn=Unescaped Equals,ou=LDAPv3,dc=example,dc=com
objectClass: groupOfNames
@ -120,6 +122,7 @@ member: ou=Sales\3B Data\2BAlgorithms,dc=example,dc=net
member:: Y249QmVmb3JlDUFmdGVyLGRjPWV4YW1wbGUsZGM9bmV0
member: cn=\23John Smith\20,dc=example,dc=net
member:: Y249THXEjWnEhw==
member: testUUID=597ae2f6-16a6-1027-98f4-d28b5365dc14,dc=Example
seeAlso: cn=John Smith\2C III,dc=example,dc=net
seeAlso: ou=Sales\3B Data\2BAlgorithms,dc=example,dc=net
seeAlso: cn=\23John Smith\20,dc=example,dc=net
@ -139,6 +142,7 @@ description: CN=Before\0dAfter,DC=example,DC=net
description: CN=\23John Smith\20,DC=example,DC=net
description: CN=\#John Smith\ ,DC=example,DC=net
description: CN=Lu\C4\8Di\C4\87
description: testUUID=597ae2f6-16a6-1027-98f4-d28b5365dc14,dc=Example
dn: cn=Name and Optional UID,ou=Related Syntaxes,dc=example,dc=com
objectClass: groupOfUniqueNames

View File

@ -18,6 +18,7 @@ include @SCHEMADIR@/cosine.schema
include @SCHEMADIR@/inetorgperson.schema
include @SCHEMADIR@/openldap.schema
include @SCHEMADIR@/nis.schema
include @DATADIR@/test.schema
#
pidfile @TESTDIR@/slapd.1.pid

View File

@ -24,6 +24,7 @@ member: OU=Sales\; Data\+Algorithms,DC=example,DC=net
member: CN=Before\0dAfter,DC=example,DC=net
member: CN=\23John Smith\20,DC=example,DC=net
member: CN=Lu\C4\8Di\C4\87
member: testUUID=597ae2f6-16a6-1027-98f4-d28b5365dc14,DC=Example
# DN forms already defined as "member" in a different string representation
seeAlso: CN=John Smith\2C III,DC=example,DC=net
seeAlso: OU=Sales\3B Data\2BAlgorithms,DC=example,DC=net
@ -46,6 +47,7 @@ description: CN=Before\0dAfter,DC=example,DC=net
description: CN=\23John Smith\20,DC=example,DC=net
description: CN=\#John Smith\ ,DC=example,DC=net
description: CN=Lu\C4\8Di\C4\87
description: testUUID=597ae2f6-16a6-1027-98f4-d28b5365dc14,DC=Example
dn: cn=Should Succeed,ou=LDAPv3,dc=example,dc=com
objectClass: groupOfNames

View File

@ -36,7 +36,6 @@ attributetype ( 1.3.6.1.4.1.4203.666.1.36
SYNTAX 1.2.826.0.1.3344810.7.1 )
# generalized time testing
attributetype ( 1.3.6.1.4.1.4203.666.1.37
name 'testTime'
equality generalizedTimeMatch
@ -44,6 +43,14 @@ attributetype ( 1.3.6.1.4.1.4203.666.1.37
syntax 1.3.6.1.4.1.1466.115.121.1.24
single-value )
# for UUID testing
attributetype ( 1.3.6.1.4.1.4203.666.1.56
name 'testUUID'
equality UUIDMatch
ordering UUIDOrderingMatch
syntax 1.3.6.1.1.16.1 )
# for obsolete testing
attributetype ( 1.3.6.1.4.1.4203.666.1.38
name 'testObsolete'
obsolete
@ -59,3 +66,4 @@ objectClass ( 1.3.6.1.3.1.4203.666.3.16
name 'obsoletePerson'
obsolete auxiliary
may ( testObsolete ) )