rpc_server/drsuapi: Don't set msDS_IntId as attid for linked attributes if schema
authorGarming Sam <garming@catalyst.net.nz>
Wed, 27 Jul 2016 02:22:39 +0000 (14:22 +1200)
committerStefan Metzmacher <metze@samba.org>
Thu, 28 Jul 2016 08:06:10 +0000 (10:06 +0200)
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
selftest/knownfail
source4/rpc_server/drsuapi/getncchanges.c

index 71b6fcfc86404a0d15f9fff39bdf96b2a8efbce5..397e53c1f08464329bb27ab6fe57592d80c05368 100644 (file)
 ^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
index f44a79a8a55381b3e104f4a48db7c56c6fd86930..f002836da0fcb48bf10293f53004dafdb9a1c9f6 100644 (file)
@@ -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,