From 7c7fab11d44680c1145ba24501d041db63f12ee3 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Wed, 31 May 2000 18:46:13 +0000 Subject: [PATCH] Add extensibleObject support --- servers/slapd/schema_check.c | 15 +++++++++++++++ servers/slapd/schema_prep.c | 1 + servers/slapd/slap.h | 1 + 3 files changed, 17 insertions(+) diff --git a/servers/slapd/schema_check.c b/servers/slapd/schema_check.c index 4f76da0e36..d1c00935c3 100644 --- a/servers/slapd/schema_check.c +++ b/servers/slapd/schema_check.c @@ -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 diff --git a/servers/slapd/schema_prep.c b/servers/slapd/schema_prep.c index d2bac90a64..57409c8b38 100644 --- a/servers/slapd/schema_prep.c +++ b/servers/slapd/schema_prep.c @@ -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) }, diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index 16635cca07..caa65db0f8 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -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; -- 2.39.5