]> git.sur5r.net Git - openldap/commitdiff
(Quick)fix UUID naming attributes
authorKurt Zeilenga <kurt@openldap.org>
Tue, 20 Dec 2005 22:36:51 +0000 (22:36 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 20 Dec 2005 22:36:51 +0000 (22:36 +0000)
servers/slapd/dn.c
servers/slapd/schema_init.c
servers/slapd/slap.h
tests/data/dn.out
tests/data/slapd-dn.conf
tests/data/test-dn.ldif
tests/data/test.schema

index 0f4c1e93961020f06d57f345d88ce7d3b0d1370f..f96ccf50fba20ac6a6b12d4b1d59242b7731f528 100644 (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 ) {
index 505a375c519f2c83cd83a11e45edad2d13c9681b..d31257113917b6a9f67be998d0b378dc94db6c0d 100644 (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"},
index 34105c657ddbd8f09f88e1be47ba0a3555492f6f..8392477e719f2fa08e7985661b41f8b697b65ed1 100644 (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
index bc97e96018e13ccb32f83b83b5e71b4cedb725fe..a517c068b248f6f6929dff212a6f01b670fd4d6a 100644 (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
index 10e02bb60bc7a41e04bc743d39bceb5b05c02eab..d05e9f53b80d367ca3ba3559f6e82a56d31dad21 100644 (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
index 74c66ab3f102b72dac5af5d5094021892eea5f04..66730d1e4103d84b238925d11d53186c4abec222 100644 (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
index 3e37b206138251bed76dac566148c96783bf68e2..adf0e2f1ce46578f99096a0b251ad8d557f6a960 100644 (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 ) )
+