diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-11-20 12:10:41 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-11-20 12:10:41 +0000 |
commit | ddd2f9ced058a24ef63c4033cb54c8517269bbfd (patch) | |
tree | 590317291286737844a7e553a9619ae6fb4d9ce3 /source4 | |
parent | b1e5882eb380ebfab3ca3e3d0c2d1f979d6efe86 (diff) | |
download | samba-ddd2f9ced058a24ef63c4033cb54c8517269bbfd.tar.gz samba-ddd2f9ced058a24ef63c4033cb54c8517269bbfd.tar.bz2 samba-ddd2f9ced058a24ef63c4033cb54c8517269bbfd.zip |
added samr_QueryDisplayInfo() (only level 1 so far)
(This used to be commit 8601305c8100f03ffaee4754eae12e9b332508a4)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/samr.idl | 30 | ||||
-rw-r--r-- | source4/torture/rpc/samr.c | 28 |
2 files changed, 57 insertions, 1 deletions
diff --git a/source4/librpc/idl/samr.idl b/source4/librpc/idl/samr.idl index 8604f311cf..0723354662 100644 --- a/source4/librpc/idl/samr.idl +++ b/source4/librpc/idl/samr.idl @@ -645,7 +645,35 @@ /************************/ /* Function 0x28 */ - NTSTATUS samr_QUERY_DISPINFO(); + + typedef struct { + uint32 idx; + uint32 rid; + uint32 acct_flags; + samr_Name username; + samr_Name full_name; + samr_Name description; + } samr_DispEntry1; + + typedef struct { + uint32 count; + [size_is(count)] samr_DispEntry1 *entries; + } samr_DispInfo1; + + typedef union { + [case(1)] samr_DispInfo1 info1; + } samr_DispInfo; + + NTSTATUS samr_QueryDisplayInfo( + [in,ref] policy_handle *handle, + [in] uint16 level, + [in] uint32 start_idx, + [in] uint32 max_entries, + [in] uint32 buf_size, + [out] uint32 total_size, + [out] uint32 returned_size, + [out,switch_is(level)] samr_DispInfo info + ); /************************/ /* Function 0x29 */ diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c index 49984aeea0..345347a344 100644 --- a/source4/torture/rpc/samr.c +++ b/source4/torture/rpc/samr.c @@ -651,6 +651,30 @@ static BOOL test_EnumDomainAliases(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, return ret; } +static BOOL test_QueryDisplayInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, + struct policy_handle *handle) +{ + NTSTATUS status; + struct samr_QueryDisplayInfo r; + BOOL ret = True; + + printf("Testing QueryDisplayInfo\n"); + + r.in.handle = handle; + r.in.level = 1; + r.in.start_idx = 0; + r.in.max_entries = 100; + r.in.buf_size = (uint32)-1; + + status = dcerpc_samr_QueryDisplayInfo(p, mem_ctx, &r); + if (!NT_STATUS_IS_OK(status)) { + printf("QueryDisplayInfo failed - %s\n", nt_errstr(status)); + return False; + } + + return ret; +} + static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct policy_handle *handle) { @@ -723,6 +747,10 @@ static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, ret = False; } + if (!test_QueryDisplayInfo(p, mem_ctx, &domain_handle)) { + ret = False; + } + if (!test_Close(p, mem_ctx, &domain_handle)) { ret = False; } |