} 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 ) {
} 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 ) {
return LDAP_SUCCESS;
}
-static int
+int
UUIDNormalize(
slap_mask_t usage,
Syntax *syntax,
{"( 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"},
#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
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
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
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
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
include @SCHEMADIR@/inetorgperson.schema
include @SCHEMADIR@/openldap.schema
include @SCHEMADIR@/nis.schema
+include @DATADIR@/test.schema
#
pidfile @TESTDIR@/slapd.1.pid
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
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
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
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
name 'obsoletePerson'
obsolete auxiliary
may ( testObsolete ) )
+