diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-12-15 10:21:09 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-12-15 10:21:09 +0000 |
commit | 5b0359652912baee3767d14d394eb951301c0e8f (patch) | |
tree | 2d128d08dcad7f4b704df7e6e537f541570dda13 /source4 | |
parent | 0a610362575d070001a49b7e0f8249e3718d8da6 (diff) | |
download | samba-5b0359652912baee3767d14d394eb951301c0e8f.tar.gz samba-5b0359652912baee3767d14d394eb951301c0e8f.tar.bz2 samba-5b0359652912baee3767d14d394eb951301c0e8f.zip |
fixed srvsvc DiskEnum call
strangely, the output doesn't seem to contain an info level. Some
programmer stuffed up the IDL :)
(This used to be commit a39ee5d00341e1dbde0b38474ba4d5e980e74538)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/srvsvc.idl | 24 | ||||
-rw-r--r-- | source4/torture/rpc/srvsvc.c | 12 |
2 files changed, 19 insertions, 17 deletions
diff --git a/source4/librpc/idl/srvsvc.idl b/source4/librpc/idl/srvsvc.idl index 6d8a596135..17e9491fbe 100644 --- a/source4/librpc/idl/srvsvc.idl +++ b/source4/librpc/idl/srvsvc.idl @@ -379,24 +379,24 @@ } srvsvc_NetDisk0; typedef struct { + uint32 unknown; uint32 count; - uint32 unknown1; - uint32 unknown2; - srvsvc_NetDisk0 array[count]; + [size_is(count)] srvsvc_NetDisk0 array[]; } srvsvc_NetDiskCtr0; - typedef struct { - uint32 num1; - srvsvc_NetDiskCtr0 *ctr0; + typedef union { + [case(0)] srvsvc_NetDiskCtr0 *ctr0; } srvsvc_NetDiskCtr; WERROR srvsvc_NetDiskEnum( - [in] unistr *server_unc, - [in] uint32 level, - [in,out] srvsvc_NetDiskCtr ctr, - [in] uint32 preferred_len, - [out] uint32 total, - [in,out] uint32 *resume_handle + [in] unistr *server_unc, + [in] uint32 level, + [out] uint32 num_entries, + [in,switch_is(level)] srvsvc_NetDiskCtr ctr, + [out] srvsvc_NetDiskCtr0 *disks, + [in] uint32 unknown, + [out] uint32 max_entries, + [in,out] uint32 *resume_handle ); /******************/ diff --git a/source4/torture/rpc/srvsvc.c b/source4/torture/rpc/srvsvc.c index 349fb82131..f699cb426b 100644 --- a/source4/torture/rpc/srvsvc.c +++ b/source4/torture/rpc/srvsvc.c @@ -159,10 +159,12 @@ static BOOL test_NetDiskEnum(struct dcerpc_pipe *p, uint32 levels[] = {0}; int i; BOOL ret = True; + uint32 resume_handle=0; - r.in.server_unc = talloc_asprintf(mem_ctx,"\\\\%s",dcerpc_server_name(p)); - r.in.preferred_len = (uint32)-1; - r.in.resume_handle = NULL; + r.in.server_unc = NULL; + r.in.unknown = 0; + r.in.resume_handle = &resume_handle; + r.in.ctr.ctr0 = NULL; for (i=0;i<ARRAY_SIZE(levels);i++) { r.in.level = levels[i]; @@ -273,11 +275,11 @@ BOOL torture_rpc_srvsvc(int dummy) if (!test_NetShareEnumAll(p, mem_ctx)) { ret = False; } -#if 0 + if (!test_NetDiskEnum(p, mem_ctx)) { ret = False; } -#endif + if (!test_NetTransportEnum(p, mem_ctx)) { ret = False; } |