return structuralObjectClass errors

(likely need to be applied to other backends)
This commit is contained in:
Kurt Zeilenga 2006-09-16 11:48:52 +00:00
parent 2b242dee14
commit 2c4b2b5566
2 changed files with 17 additions and 4 deletions

View File

@ -639,10 +639,16 @@ int slap_add_opattrs(
if ( oc ) {
rc = structural_class( oc->a_vals, &tmp, NULL, text,
textbuf, textlen );
if( rc != LDAP_SUCCESS ) return rc;
if( rc == LDAP_SUCCESS ) {
attr_merge_one( op->ora_e,
slap_schema.si_ad_structuralObjectClass,
&tmp, NULL );
attr_merge_one( op->ora_e, slap_schema.si_ad_structuralObjectClass,
&tmp, NULL );
} else if ( !SLAP_NO_SCHEMA_CHECK( op->o_bd ) &&
!get_no_schema_check( op ) )
{
return rc;
}
}
}
@ -736,5 +742,6 @@ int slap_add_opattrs(
slap_schema.si_ad_modifyTimestamp, &timestamp, NULL );
}
}
return LDAP_SUCCESS;
}

View File

@ -93,7 +93,13 @@ txnReturn:
/* add opattrs to shadow as well, only missing attrs will actually
* be added; helps compatibility with older OL versions */
slap_add_opattrs( op, &rs->sr_text, textbuf, textlen, 1 );
rs->sr_err = slap_add_opattrs( op, &rs->sr_text, textbuf, textlen, 1 );
if ( rs->sr_err != LDAP_SUCCESS ) {
Debug( LDAP_DEBUG_TRACE,
LDAP_XSTRING(bdb_add) ": entry failed op attrs add: "
"%s (%d)\n", rs->sr_text, rs->sr_err, 0 );
goto return_results;
}
/* check entry's schema */
rs->sr_err = entry_schema_check( op, op->oq_add.rs_e, NULL,