]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/schema_prep.c
Commit of the Proxy Cache contribution (ITS#2062)
[openldap] / servers / slapd / schema_prep.c
index 9b1dbb57e0dc80ef525d779f9db1f8f7b389eb28..87aaf2437dcc2a421a6ca6d2c02456b121ac9174 100644 (file)
@@ -90,7 +90,12 @@ objectSubClassMatch(
                return SLAPD_COMPARE_UNDEFINED;
        }
 
-       if( SLAP_IS_MR_ATTRIBUTE_SYNTAX_MATCH( flags ) ) {
+#ifdef SLAP_NVALUES
+       if( SLAP_MR_IS_VALUE_OF_ATTRIBUTE_SYNTAX( flags ) )
+#else
+       if( SLAP_IS_MR_ATTRIBUTE_SYNTAX_MATCH( flags ) )
+#endif
+       {
                *matchp = ( asserted != oc );
        } else {
                *matchp = !is_object_subclass( asserted, oc );
@@ -470,6 +475,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 operation attribute */
+       { "queryid", "( 2.5.18.16 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 +809,19 @@ 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 +829,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 }
 };