From efffbc90362aa9d09f4c3f2e17f040ad81f7988d Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 26 Sep 2006 23:43:58 +0000 Subject: r18935: Make "netshareenum" work again. There is most probably a better way to do this... Any pointers? Guenther (This used to be commit 1f09e54fec9ac2e6173272d83d8c96d33636f1a0) --- source3/rpcclient/cmd_srvsvc.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'source3/rpcclient') diff --git a/source3/rpcclient/cmd_srvsvc.c b/source3/rpcclient/cmd_srvsvc.c index c58f908cec..e1e5af752a 100644 --- a/source3/rpcclient/cmd_srvsvc.c +++ b/source3/rpcclient/cmd_srvsvc.c @@ -249,6 +249,8 @@ static NTSTATUS cmd_srvsvc_net_share_enum(struct rpc_pipe_client *cli, uint32 preferred_len = 0xffffffff, i; uint32 numentries; + ZERO_STRUCT(ctr); + if (argc > 2) { printf("Usage: %s [infolevel]\n", argv[0]); return NT_STATUS_OK; @@ -259,8 +261,33 @@ static NTSTATUS cmd_srvsvc_net_share_enum(struct rpc_pipe_client *cli, hnd = 0; + switch (info_level) { + case 1: { + struct srvsvc_NetShareCtr1 ctr1; + ZERO_STRUCT(ctr1); + ctr.ctr1 = &ctr1; + } + break; + + case 2: { + struct srvsvc_NetShareCtr2 ctr2; + ZERO_STRUCT(ctr2); + ctr.ctr2 = &ctr2; + } + break; + case 502: { + struct srvsvc_NetShareCtr502 ctr502; + ZERO_STRUCT(ctr502); + ctr.ctr502 = &ctr502; + } + break; + + default: + break; + } + result = rpccli_srvsvc_NetShareEnum( - cli, mem_ctx, NULL, &info_level, &ctr, preferred_len, &numentries, + cli, mem_ctx, cli->cli->desthost, &info_level, &ctr, preferred_len, &numentries, &hnd); if (!NT_STATUS_IS_OK(result) || !numentries) -- cgit