]> git.sur5r.net Git - openldap/commitdiff
Treat unrecognized object classes as an objecdt class violation (per X.511)
authorKurt Zeilenga <kurt@openldap.org>
Wed, 10 Jan 2001 19:00:47 +0000 (19:00 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Wed, 10 Jan 2001 19:00:47 +0000 (19:00 +0000)
servers/slapd/schema_check.c

index 0d54333a79db28c5322b8dfb71beda4e411cded6..29cb3d9e098e8efd750aaeeaf805361f82720320 100644 (file)
@@ -42,10 +42,8 @@ entry_schema_check(
        if ( (aoc = attr_find( e->e_attrs, ad_objectClass )) == NULL ) {
                Debug( LDAP_DEBUG_ANY, "No object class for entry (%s)\n",
                    e->e_dn, 0, 0 );
-               *text = "no objectclass attribute";
-               return oldattrs != NULL
-                       ? LDAP_OBJECT_CLASS_VIOLATION
-                       : LDAP_NO_OBJECT_CLASS_MODS;
+               *text = "no objectClass attribute";
+               return LDAP_OBJECT_CLASS_VIOLATION;
        }
 
        ret = LDAP_SUCCESS;
@@ -54,8 +52,10 @@ entry_schema_check(
        for ( i = 0; aoc->a_vals[i] != NULL; i++ ) {
                if ( (oc = oc_find( aoc->a_vals[i]->bv_val )) == NULL ) {
                        Debug( LDAP_DEBUG_ANY,
-                               "entry_check_schema(%s): objectclass \"%s\" not defined\n",
+                               "entry_check_schema(%s): objectclass \"%s\" not recognized\n",
                                e->e_dn, aoc->a_vals[i]->bv_val, 0 );
+                       *text = "unrecognized object class";
+                       return LDAP_OBJECT_CLASS_VIOLATION;
 
                } else {
                        char *s = oc_check_required( e, aoc->a_vals[i] );
@@ -65,22 +65,16 @@ entry_schema_check(
                                        "Entry (%s), oc \"%s\" requires attr \"%s\"\n",
                                        e->e_dn, aoc->a_vals[i]->bv_val, s );
                                *text = "missing required attribute";
-                               ret = LDAP_OBJECT_CLASS_VIOLATION;
-                               break;
+                               return LDAP_OBJECT_CLASS_VIOLATION;
                        }
 
-                       if( oc == slap_schema.si_oc_extensibleObject )
-                       {
+                       if( oc == slap_schema.si_oc_extensibleObject ) {
                                extensible=1;
                        }
 
                }
        }
 
-       if ( ret != LDAP_SUCCESS ) {
-           return ret;
-       }
-
        if( extensible ) {
                return LDAP_SUCCESS;
        }