]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/schema_prep.c
group rewrite/map stuff in one structure and optimize more function calls
[openldap] / servers / slapd / schema_prep.c
index 1fc700ba122c3a14a14d8d48b88bd745dd2afd12..9a3ee2526eba440cb6387b50a25fa692ba7b8de0 100644 (file)
@@ -90,7 +90,8 @@ objectSubClassMatch(
                return SLAPD_COMPARE_UNDEFINED;
        }
 
-       if( SLAP_IS_MR_VALUE_SYNTAX_MATCH( flags ) ) {
+       if( SLAP_MR_IS_VALUE_OF_ATTRIBUTE_SYNTAX( flags ) )
+       {
                *matchp = ( asserted != oc );
        } else {
                *matchp = !is_object_subclass( asserted, oc );
@@ -452,7 +453,7 @@ static struct slap_schema_ad_map {
                NULL, NULL, NULL, NULL, NULL,
                offsetof(struct slap_internal_schema, si_ad_entryUUID) },
        { "entryCSN", "( 1.3.6.1.4.1.4203.666.1.7 NAME 'entryCSN' "
-                       "DESC 'LCUP/LDUP: change sequence number of the entry' "
+                       "DESC 'LCUP/LDUP: change sequence number of the entry content' "
                        "EQUALITY octetStringMatch "
                        "ORDERING octetStringOrderingMatch "
                        "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
@@ -460,6 +461,15 @@ static struct slap_schema_ad_map {
                NULL, SLAP_AT_HIDE,
                NULL, NULL, NULL, NULL, NULL,
                offsetof(struct slap_internal_schema, si_ad_entryCSN) },
+       { "namingCSN", "( 1.3.6.1.4.1.4203.666.1.13 NAME 'namingCSN' "
+                       "DESC 'LCUP/LDUP: change sequence number of the entry naming (RDN)' "
+                       "EQUALITY octetStringMatch "
+                       "ORDERING octetStringOrderingMatch "
+                       "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
+                       "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )",
+               NULL, SLAP_AT_HIDE,
+               NULL, NULL, NULL, NULL, NULL,
+               offsetof(struct slap_internal_schema, si_ad_namingCSN) },
 
        { "superiorUUID", "( 1.3.6.1.4.1.4203.666.1.11 NAME 'superiorUUID' "   
                        "DESC 'LCUP/LDUP: UUID of the superior entry' "
@@ -470,6 +480,18 @@ static struct slap_schema_ad_map {
                NULL, NULL, NULL, NULL, NULL,
                offsetof(struct slap_internal_schema, si_ad_superiorUUID) },
 
+#ifdef LDAP_CACHING 
+       /* LDAP cache specific operational attribute */
+       { "queryid", "( 1.3.6.1.4.1.4203.666.1.12 NAME 'queryid' "
+                       "DESC 'list of queries the entry belongs to' "
+                       "EQUALITY octetStringMatch "
+                       "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} "
+                       "NO-USER-MODIFICATION USAGE directoryOperation )",
+               NULL, 0, /* SLAP_AT_HIDE or SLAP_AT_NONE ? */
+               NULL, NULL, NULL, NULL, NULL, 
+               offsetof(struct slap_internal_schema, si_ad_queryid) },
+#endif /* LDAP_CACHING */
+
        /* root DSE attributes */
        { "altServer", "( 1.3.6.1.4.1.1466.101.120.6 NAME 'altServer' "
                        "DESC 'RFC2252: alternative servers' "
@@ -792,10 +814,18 @@ static struct slap_schema_mr_map {
        char *ssmm_name;
        size_t ssmm_offset;
 } mr_map[] = {
+       { "caseExactIA5Match",
+               offsetof(struct slap_internal_schema, si_mr_caseExactIA5Match) },
+       { "caseExactMatch",
+               offsetof(struct slap_internal_schema, si_mr_caseExactMatch) },
+       { "caseExactSubstringsMatch",
+               offsetof(struct slap_internal_schema, si_mr_caseExactSubstringsMatch) },
        { "distinguishedNameMatch",
                offsetof(struct slap_internal_schema, si_mr_distinguishedNameMatch) },
        { "integerMatch",
                offsetof(struct slap_internal_schema, si_mr_integerMatch) },
+       { "integerFirstComponentMatch", offsetof(struct slap_internal_schema,
+               si_mr_integerFirstComponentMatch) },
        { NULL, 0 }
 };
 
@@ -803,12 +833,14 @@ static struct slap_schema_syn_map {
        char *sssm_name;
        size_t sssm_offset;
 } syn_map[] = {
-       { "1.3.6.1.4.1.1466.115.121.1.40",
-               offsetof(struct slap_internal_schema, si_syn_octetString) },
+       { "1.3.6.1.4.1.1466.115.121.1.15",
+               offsetof(struct slap_internal_schema, si_syn_directoryString) },
        { "1.3.6.1.4.1.1466.115.121.1.12",
                offsetof(struct slap_internal_schema, si_syn_distinguishedName) },
        { "1.3.6.1.4.1.1466.115.121.1.27",
                offsetof(struct slap_internal_schema, si_syn_integer) },
+       { "1.3.6.1.4.1.1466.115.121.1.40",
+               offsetof(struct slap_internal_schema, si_syn_octetString) },
        { NULL, 0 }
 };