]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/schema_check.c
Install *.schema only
[openldap] / servers / slapd / schema_check.c
index 4f76da0e36bb1d5d7839914b2dbc854559110ad2..d1c00935c31ff32fea0427985b83de765acf6dd4 100644 (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