&msg->elements[i]);
if (!W_ERROR_IS_OK(werr) &&
!ldb_request_get_control(ac->req, DSDB_CONTROL_DBCHECK)) {
- ldb_asprintf_errstring(ldb, "objectclass_attrs: attribute '%s' on entry '%s' contains at least one invalid value!",
+ ldb_asprintf_errstring(ldb, "objectclass_attrs: attribute '%s' on entry '%s' contains at least one invalid value! %s!",
msg->elements[i].name,
- ldb_dn_get_linearized(msg->dn));
- return LDB_ERR_CONSTRAINT_VIOLATION;
+ ldb_dn_get_linearized(msg->dn),
+ win_errstr(werr));
+ if (W_ERROR_EQUAL(werr, WERR_DS_INVALID_ATTRIBUTE_SYNTAX)) {
+ return LDB_ERR_INVALID_ATTRIBUTE_SYNTAX;
+ }
+ if (W_ERROR_EQUAL(werr, WERR_DS_CONSTRAINT_VIOLATION)) {
+ return LDB_ERR_CONSTRAINT_VIOLATION;
+ }
+ return LDB_ERR_OPERATIONS_ERROR;
}
}