#include "slap.h"
#include "ldap_pvt.h"
-#ifdef SLAPD_SCHEMA_NOT_COMPAT
-static int oc_check_allowed(
- AttributeType *type,
- struct berval **oclist );
-#else
+#ifndef SLAPD_SCHEMA_NOT_COMPAT
static int oc_check_allowed(char *type, struct berval **oclist);
#endif
static char * oc_check_required(Entry *e, struct berval *ocname);
#else
static const char *ad_objectClass = "objectclass";
#endif
+ int extensible = 0;
if( !global_schemacheck ) return LDAP_SUCCESS;
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;
+ }
+
}
}
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
return( NULL );
}
-static int
-oc_check_allowed(
+#ifndef SLAPD_SCHEMA_NOT_COMPAT
+static
+#endif
+int oc_check_allowed(
#ifdef SLAPD_SCHEMA_NOT_COMPAT
AttributeType *at,
#else