]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-bdb/modify.c
Modify ad_cmp() macro to support use as an ordering function.
[openldap] / servers / slapd / back-bdb / modify.c
index 17acfbd73668bb8477c04d23f9588dc5a94278b1..66df842a08a2cf8ebd0dbfdfa8fb2c96e8ded43f 100644 (file)
@@ -117,6 +117,11 @@ int bdb_modify_internal(
                        return err; 
                }
 
+               /* If objectClass was modified, reset the flags */
+               if ( mod->sm_desc == slap_schema.si_ad_objectClass ) {
+                       e->e_ocflags = 0;
+               }
+
                /* check if modified attribute was indexed */
                err = bdb_index_is_indexed( be, mod->sm_desc );
                if ( err == LDAP_SUCCESS ) {
@@ -579,15 +584,10 @@ replace_values(
        char    *dn
 )
 {
-       int rc = attr_delete( &e->e_attrs, mod->sm_desc );
-
-       if( rc != LDAP_SUCCESS && rc != LDAP_NO_SUCH_ATTRIBUTE ) {
-               return rc;
-       }
-       rc = LDAP_SUCCESS;
+       (void) attr_delete( &e->e_attrs, mod->sm_desc );
 
        if ( mod->sm_bvalues ) {
-               rc = add_values( e, mod, dn );
+               return add_values( e, mod, dn );
        }
 
        return LDAP_SUCCESS;