diff options
Diffstat (limited to 'source4/torture/rpc')
-rw-r--r-- | source4/torture/rpc/samr.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c index 25db0228c5..28dd03e803 100644 --- a/source4/torture/rpc/samr.c +++ b/source4/torture/rpc/samr.c @@ -2987,6 +2987,16 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, levels[i], r.out.info->info2.comment.string, domain_comment); ret = False; } + if (!r.out.info->info2.primary.string) { + printf("QueryDomainInfo level %u returned no PDC name\n", + levels[i]); + ret = False; + } else if (r.out.info->info2.role == SAMR_ROLE_DOMAIN_PDC) { + if (dcerpc_server_name(p) && strcasecmp_m(dcerpc_server_name(p), r.out.info->info2.primary.string) != 0) { + printf("QueryDomainInfo level %u returned different PDC name (%s) compared to server name (%s), despite claiming to be the PDC\n", + levels[i], r.out.info->info2.primary.string, dcerpc_server_name(p)); + } + } break; case 4: if (strcmp(r.out.info->info4.comment.string, domain_comment) != 0) { @@ -2995,6 +3005,13 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, ret = False; } break; + case 6: + if (!r.out.info->info6.primary.string) { + printf("QueryDomainInfo level %u returned no PDC name\n", + levels[i]); + ret = False; + } + break; case 11: if (strcmp(r.out.info->info11.info2.comment.string, domain_comment) != 0) { printf("QueryDomainInfo level %u returned different comment (%s, expected %s)\n", |