Add extensibleObject support

This commit is contained in:
Kurt Zeilenga 2000-05-31 18:46:13 +00:00
parent ea67f4f758
commit 7c7fab11d4
3 changed files with 17 additions and 0 deletions

View File

@ -41,6 +41,7 @@ entry_schema_check(
#else
static const char *ad_objectClass = "objectclass";
#endif
int extensible = 0;
if( !global_schemacheck ) return LDAP_SUCCESS;
@ -74,6 +75,16 @@ entry_schema_check(
ret = LDAP_OBJECT_CLASS_VIOLATION;
break;
}
#ifdef SLAPD_SCHEMA_NOT_COMPAT
if( oc == slap_schema.si_oc_extensibleObject )
#else
if( !strcmp( aoc->a_vals[i], "extensibleObject" ) == 0 )
#endif
{
extensible=1;
}
}
}
@ -81,6 +92,10 @@ entry_schema_check(
return ret;
}
if( extensible ) {
return LDAP_SUCCESS;
}
/* check that each attr in the entry is allowed by some oc */
for ( a = e->e_attrs; a != NULL; a = a->a_next ) {
#ifdef SLAPD_SCHEMA_NOT_COMPAT

View File

@ -42,6 +42,7 @@ struct slap_schema_oc_map {
size_t ssom_offset;
} oc_map[] = {
{ "top", offsetof(struct slap_internal_schema, si_oc_top) },
{ "extensibleObject", offsetof(struct slap_internal_schema, si_oc_extensibleObject) },
{ "alias", offsetof(struct slap_internal_schema, si_oc_alias) },
{ "referral", offsetof(struct slap_internal_schema, si_oc_referral) },
{ "LDAProotDSE", offsetof(struct slap_internal_schema, si_oc_rootdse) },

View File

@ -334,6 +334,7 @@ typedef struct slap_attr_desc {
struct slap_internal_schema {
/* objectClass */
ObjectClass *si_oc_top;
ObjectClass *si_oc_extensibleObject;
ObjectClass *si_oc_alias;
ObjectClass *si_oc_referral;
ObjectClass *si_oc_subentry;