summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2016-07-27 14:22:39 +1200
committerStefan Metzmacher <metze@samba.org>2016-07-28 10:06:10 +0200
commit192e54c91d007268e127e4ce4f95972c9492b540 (patch)
tree1c2ae78309e111e4946d09576f8497eae006a3d6
parentdffe66e0995818c659351ccf1f0edc1eca964235 (diff)
downloadsamba-192e54c91d007268e127e4ce4f95972c9492b540.tar.gz
rpc_server/drsuapi: Don't set msDS_IntId as attid for linked attributes if schema
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r--selftest/knownfail1
-rw-r--r--source4/rpc_server/drsuapi/getncchanges.c12
2 files changed, 8 insertions, 5 deletions
diff --git a/selftest/knownfail b/selftest/knownfail
index 71b6fcfc864..397e53c1f08 100644
--- a/selftest/knownfail
+++ b/selftest/knownfail
@@ -286,4 +286,3 @@
^samba4.krb5.kdc.*as-req-aes.*fl2000dc
# nt4_member and ad_member don't support ntlmv1
^samba3.blackbox.smbclient_auth.plain.*_member.*option=clientntlmv2auth=no.member.creds.*as.user
-^samba4.drs.repl_schema.python.*repl_schema.DrsReplSchemaTestCase.test_classWithCustomLinkAttribute
diff --git a/source4/rpc_server/drsuapi/getncchanges.c b/source4/rpc_server/drsuapi/getncchanges.c
index f44a79a8a55..f002836da0f 100644
--- a/source4/rpc_server/drsuapi/getncchanges.c
+++ b/source4/rpc_server/drsuapi/getncchanges.c
@@ -410,7 +410,8 @@ static WERROR get_nc_changes_add_la(TALLOC_CTX *mem_ctx,
struct ldb_message *msg,
struct dsdb_dn *dsdb_dn,
struct drsuapi_DsReplicaLinkedAttribute **la_list,
- uint32_t *la_count)
+ uint32_t *la_count,
+ bool is_schema_nc)
{
struct drsuapi_DsReplicaLinkedAttribute *la;
bool active;
@@ -482,7 +483,7 @@ static WERROR get_nc_changes_add_la(TALLOC_CTX *mem_ctx,
return WERR_OK;
}
}
- la->attid = dsdb_attribute_get_attid(sa, false);
+ la->attid = dsdb_attribute_get_attid(sa, is_schema_nc);
la->flags = active?DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE:0;
status = dsdb_get_extended_dn_uint32(dsdb_dn->dn, &la->meta_data.version, "RMD_VERSION");
@@ -531,6 +532,7 @@ static WERROR get_nc_changes_add_la(TALLOC_CTX *mem_ctx,
static WERROR get_nc_changes_add_links(struct ldb_context *sam_ctx,
TALLOC_CTX *mem_ctx,
struct ldb_dn *ncRoot_dn,
+ bool is_schema_nc,
struct dsdb_schema *schema,
uint64_t highest_usn,
uint32_t replica_flags,
@@ -594,8 +596,9 @@ static WERROR get_nc_changes_add_links(struct ldb_context *sam_ctx,
continue;
}
- werr = get_nc_changes_add_la(mem_ctx, sam_ctx, schema, sa, msg,
- dsdb_dn, la_list, la_count);
+ werr = get_nc_changes_add_la(mem_ctx, sam_ctx, schema,
+ sa, msg, dsdb_dn, la_list,
+ la_count, is_schema_nc);
if (!W_ERROR_IS_OK(werr)) {
talloc_free(tmp_ctx);
return werr;
@@ -2097,6 +2100,7 @@ allowed:
werr = get_nc_changes_add_links(sam_ctx, getnc_state,
getnc_state->ncRoot_dn,
+ getnc_state->is_schema_nc,
schema, getnc_state->min_usn,
req10->replica_flags,
msg,