IF_NULL_FAIL_RET(schema_entry);
}
- if (subClassOf) {
+ if (subClassOf && strcasecmp(subClassOf, name) != 0) {
schema_entry = talloc_asprintf_append(schema_entry,
"SUP %s%s", subClassOf, seperator);
IF_NULL_FAIL_RET(schema_entry);
if (must) {
schema_entry = talloc_asprintf_append(schema_entry,
- "MUST ( ");
+ "MUST (%s", target == TARGET_AD_SCHEMA_SUBENTRY ? "" : " ");
IF_NULL_FAIL_RET(schema_entry);
APPEND_ATTRS(must);
if (may) {
schema_entry = talloc_asprintf_append(schema_entry,
- "MAY ( ");
+ "MAY (%s", target == TARGET_AD_SCHEMA_SUBENTRY ? "" : " ");
IF_NULL_FAIL_RET(schema_entry);
APPEND_ATTRS(may);