summaryrefslogtreecommitdiff
path: root/source3/rpc_client
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-07-21 01:32:09 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:52:14 -0500
commitc8137eeea40c0b9f5526fd0c9cfd5843a572a8a0 (patch)
treefda29783e57321e07c3824278ccf417c7b063ac7 /source3/rpc_client
parent1fca1fd8d7b9e12c6d4a3c2ad2e69a27aa65a9e1 (diff)
downloadsamba-c8137eeea40c0b9f5526fd0c9cfd5843a572a8a0.tar.gz
samba-c8137eeea40c0b9f5526fd0c9cfd5843a572a8a0.tar.bz2
samba-c8137eeea40c0b9f5526fd0c9cfd5843a572a8a0.zip
r1553: Good patch from Guenther Deschner <gd@sernet.de> to display share ACL
entries from rpcclient. Jeremy. (This used to be commit bd64f0c08143545a8613688402f769a713227557)
Diffstat (limited to 'source3/rpc_client')
-rw-r--r--source3/rpc_client/cli_srvsvc.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/source3/rpc_client/cli_srvsvc.c b/source3/rpc_client/cli_srvsvc.c
index 555703cf4d..68eb17074f 100644
--- a/source3/rpc_client/cli_srvsvc.c
+++ b/source3/rpc_client/cli_srvsvc.c
@@ -181,6 +181,42 @@ WERROR cli_srvsvc_net_share_enum(struct cli_state *cli, TALLOC_CTX *mem_ctx,
init_unistr2(&info2->info_2_str.uni_passwd, s, UNI_STR_TERMINATE);
}
break;
+ /* adding info-level 502 here */
+ case 502:
+ ctr->share.info502 = (SRV_SHARE_INFO_502 *)talloc(
+ mem_ctx, sizeof(SRV_SHARE_INFO_502) * ctr->num_entries);
+
+ memset(ctr->share.info502, 0, sizeof(SRV_SHARE_INFO_502));
+
+ for (i = 0; i < ctr->num_entries; i++) {
+ SRV_SHARE_INFO_502 *info502 = &ctr->share.info502[i];
+ char *s;
+
+ /* Copy pointer crap */
+ memcpy(&info502->info_502, &r.ctr.share.info502[i].info_502,
+ sizeof(SH_INFO_502));
+
+ /* Duplicate strings */
+
+ s = unistr2_tdup(mem_ctx, &r.ctr.share.info502[i].info_502_str.uni_netname);
+ if (s)
+ init_unistr2(&info502->info_502_str.uni_netname, s, UNI_STR_TERMINATE);
+
+ s = unistr2_tdup(mem_ctx, &r.ctr.share.info502[i].info_502_str.uni_remark);
+ if (s)
+ init_unistr2(&info502->info_502_str.uni_remark, s, UNI_STR_TERMINATE);
+
+ s = unistr2_tdup(mem_ctx, &r.ctr.share.info502[i].info_502_str.uni_path);
+ if (s)
+ init_unistr2(&info502->info_502_str.uni_path, s, UNI_STR_TERMINATE);
+
+ s = unistr2_tdup(mem_ctx, &r.ctr.share.info502[i].info_502_str.uni_passwd);
+ if (s)
+ init_unistr2(&info502->info_502_str.uni_passwd, s, UNI_STR_TERMINATE);
+
+ info502->info_502_str.sd = dup_sec_desc(mem_ctx, r.ctr.share.info502[i].info_502_str.sd);
+ }
+ break;
}
done:
prs_mem_free(&qbuf);