X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fschema_prep.c;h=6d6076b1f7032c4e19d7df8352f4d0e2f5b5e592;hb=4325d05ebc5ca096ee4a0d0177e7651c028c7449;hp=cea3be76f3859a89362b8c85554eba8ba4ec8574;hpb=07ad8cefed6a79d70cb01ddc4c62ee45b329035e;p=openldap diff --git a/servers/slapd/schema_prep.c b/servers/slapd/schema_prep.c index cea3be76f3..6d6076b1f7 100644 --- a/servers/slapd/schema_prep.c +++ b/servers/slapd/schema_prep.c @@ -90,7 +90,12 @@ objectSubClassMatch( return SLAPD_COMPARE_UNDEFINED; } - if( SLAP_IS_MR_VALUE_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 ); @@ -320,6 +325,7 @@ static struct slap_schema_oc_map { "MUST cn )", 0, SLAP_OC_OPERATIONAL, offsetof(struct slap_internal_schema, si_oc_monitor) }, +#ifdef LDAP_DEVEL { "collectiveAttributeSubentry", "( 2.5.17.2 " "NAME 'collectiveAttributeSubentry' " "AUXILIARY )", @@ -332,6 +338,7 @@ static struct slap_schema_oc_map { "SUP top AUXILIARY )", dynamicObjectClass, SLAP_OC_DYNAMICOBJECT, offsetof(struct slap_internal_schema, si_oc_dynamicObject) }, +#endif { NULL, NULL, NULL, 0, 0 } }; @@ -423,6 +430,7 @@ static struct slap_schema_ad_map { NULL, 0, NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_subschemaSubentry) }, +#ifdef LDAP_DEVEL { "collectiveAttributeSubentries", "( 2.5.18.12 " "NAME 'collectiveAttributeSubentries' " "EQUALITY distinguishedNameMatch " @@ -438,6 +446,7 @@ static struct slap_schema_ad_map { NULL, SLAP_AT_HIDE, NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_collectiveExclusions) }, +#endif { "entryUUID", "( 1.3.6.1.4.1.4203.666.1.6 NAME 'entryUUID' " "DESC 'LCUP/LDUP: UUID of the entry' " @@ -448,7 +457,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} " @@ -456,6 +465,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' " @@ -466,6 +484,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' " @@ -520,8 +550,7 @@ static struct slap_schema_ad_map { { "monitorContext", "( 1.3.6.1.4.1.4203.666.1.10 " "NAME 'monitorContext' " "DESC 'monitor context' " - "EQUALITY objectIdentifierMatch " - "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 " + "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 " "SINGLE-VALUE NO-USER-MODIFICATION " "USAGE dSAOperation )", rootDseAttribute, SLAP_AT_HIDE, @@ -687,6 +716,7 @@ static struct slap_schema_ad_map { offsetof(struct slap_internal_schema, si_ad_aci) }, #endif +#ifdef LDAP_DEVEL { "entryTtl", "( 1.3.6.1.4.1.1466.101.119.3 NAME 'entryTtl' " "DESC 'RFC2589: entry time-to-live' " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE " @@ -702,6 +732,7 @@ static struct slap_schema_ad_map { rootDseAttribute, 0, NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_dynamicSubtrees) }, +#endif /* userApplication attributes (which system schema depends upon) */ { "distinguishedName", "( 2.5.4.49 NAME 'distinguishedName' " @@ -787,10 +818,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 } }; @@ -798,12 +838,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 } };