diff options
author | Andrew Bartlett <abartlet@samba.org> | 2006-12-13 11:19:51 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:29:15 -0500 |
commit | d471e52d23bf89e472c34c58dd9f113e669323a4 (patch) | |
tree | 45368b84653c14680c856cf54469e7e99ebb1720 /source4/torture/rpc | |
parent | 5cc44027dc34812153831bd559e8fb7205d09328 (diff) | |
download | samba-d471e52d23bf89e472c34c58dd9f113e669323a4.tar.gz samba-d471e52d23bf89e472c34c58dd9f113e669323a4.tar.bz2 samba-d471e52d23bf89e472c34c58dd9f113e669323a4.zip |
r20149: Remove the smb.conf distinction between PDC and BDC. Now the correct
way to setup a Samba4 DC is to set 'server role = domain controller'.
We use the fSMORoleOwner attribute in the base DN to determine the PDC.
This patch is quite large, as I have corrected a number of places that
assumed taht we are always the PDC, or that used the smb.conf
lp_server_role() to determine that.
Also included is a warning fix in the SAMR code, where the IDL has
seperated a couple of types for group display enumeration.
We also now use the ldb database to determine if we should run the
global catalog service.
In the near future, I will complete the DRSUAPI
DsGetDomainControllerInfo server-side on the same basis.
Andrew Bartlett
(This used to be commit 67d8365e831adf3eaecd8b34dcc481fc82565893)
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", |