summaryrefslogtreecommitdiff
path: root/source3/rpcclient/cmd_srvsvc.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpcclient/cmd_srvsvc.c')
-rw-r--r--source3/rpcclient/cmd_srvsvc.c172
1 files changed, 70 insertions, 102 deletions
diff --git a/source3/rpcclient/cmd_srvsvc.c b/source3/rpcclient/cmd_srvsvc.c
index 53ee7300da3..d6e01eee85e 100644
--- a/source3/rpcclient/cmd_srvsvc.c
+++ b/source3/rpcclient/cmd_srvsvc.c
@@ -131,51 +131,38 @@ static char *get_server_type_str(uint32 type)
return typestr;
}
-static void display_server(char *sname, uint32 type, const char *comment)
+static void display_server(const char *sname, uint32 type, const char *comment)
{
printf("\t%-15.15s%-20s %s\n", sname, get_server_type_str(type),
comment);
}
-static void display_srv_info_101(SRV_INFO_101 *sv101)
+static void display_srv_info_101(struct srvsvc_NetSrvInfo101 *sv101)
{
- fstring name;
- fstring comment;
-
- unistr2_to_ascii(name, &sv101->uni_name, sizeof(name) - 1);
- unistr2_to_ascii(comment, &sv101->uni_comment, sizeof(comment) - 1);
-
- display_server(name, sv101->srv_type, comment);
+ display_server(sv101->server_name, sv101->server_type, sv101->comment);
printf("\tplatform_id :\t%d\n", sv101->platform_id);
- printf("\tos version :\t%d.%d\n", sv101->ver_major,
- sv101->ver_minor);
+ printf("\tos version :\t%d.%d\n", sv101->version_major,
+ sv101->version_minor);
- printf("\tserver type :\t0x%x\n", sv101->srv_type);
+ printf("\tserver type :\t0x%x\n", sv101->server_type);
}
-static void display_srv_info_102(SRV_INFO_102 *sv102)
+static void display_srv_info_102(struct srvsvc_NetSrvInfo102 *sv102)
{
- fstring name;
- fstring comment;
- fstring usr_path;
-
- unistr2_to_ascii(name, &sv102->uni_name, sizeof(name) - 1);
- unistr2_to_ascii(comment, &sv102->uni_comment, sizeof(comment) - 1);
- unistr2_to_ascii(usr_path, &sv102->uni_usr_path, sizeof(usr_path) - 1);
-
- display_server(name, sv102->srv_type, comment);
+ display_server(sv102->server_name, sv102->server_type,
+ sv102->comment);
printf("\tplatform_id :\t%d\n", sv102->platform_id);
- printf("\tos version :\t%d.%d\n", sv102->ver_major,
- sv102->ver_minor);
+ printf("\tos version :\t%d.%d\n", sv102->version_major,
+ sv102->version_minor);
printf("\tusers :\t%x\n", sv102->users);
printf("\tdisc, hidden :\t%x, %x\n", sv102->disc, sv102->hidden);
printf("\tannounce, delta :\t%d, %d\n", sv102->announce,
- sv102->ann_delta);
+ sv102->anndelta);
printf("\tlicenses :\t%d\n", sv102->licenses);
- printf("\tuser path :\t%s\n", usr_path);
+ printf("\tuser path :\t%s\n", sv102->userpath);
}
/* Server query info */
@@ -184,7 +171,7 @@ static WERROR cmd_srvsvc_srv_query_info(struct rpc_pipe_client *cli,
int argc, const char **argv)
{
uint32 info_level = 101;
- SRV_INFO_CTR ctr;
+ union srvsvc_NetSrvInfo ctr;
WERROR result;
if (argc > 2) {
@@ -195,7 +182,7 @@ static WERROR cmd_srvsvc_srv_query_info(struct rpc_pipe_client *cli,
if (argc == 2)
info_level = atoi(argv[1]);
- result = rpccli_srvsvc_net_srv_get_info(cli, mem_ctx, info_level,
+ result = rpccli_srvsvc_NetSrvGetInfo(cli, mem_ctx, NULL, info_level,
&ctr);
if (!W_ERROR_IS_OK(result)) {
@@ -206,10 +193,10 @@ static WERROR cmd_srvsvc_srv_query_info(struct rpc_pipe_client *cli,
switch (info_level) {
case 101:
- display_srv_info_101(&ctr.srv.sv101);
+ display_srv_info_101(ctr.info101);
break;
case 102:
- display_srv_info_102(&ctr.srv.sv102);
+ display_srv_info_102(ctr.info102);
break;
default:
printf("unsupported info level %d\n", info_level);
@@ -220,53 +207,34 @@ static WERROR cmd_srvsvc_srv_query_info(struct rpc_pipe_client *cli,
return result;
}
-static void display_share_info_1(SRV_SHARE_INFO_1 *info1)
+static void display_share_info_1(struct srvsvc_NetShareInfo1 *info1)
{
- fstring netname = "", remark = "";
-
- rpcstr_pull_unistr2_fstring(netname, &info1->info_1_str.uni_netname);
- rpcstr_pull_unistr2_fstring(remark, &info1->info_1_str.uni_remark);
-
- printf("netname: %s\n", netname);
- printf("\tremark:\t%s\n", remark);
+ printf("netname: %s\n", info1->name);
+ printf("\tremark:\t%s\n", info1->comment);
}
-static void display_share_info_2(SRV_SHARE_INFO_2 *info2)
+static void display_share_info_2(struct srvsvc_NetShareInfo2 *info2)
{
- fstring netname = "", remark = "", path = "", passwd = "";
-
- rpcstr_pull_unistr2_fstring(netname, &info2->info_2_str.uni_netname);
- rpcstr_pull_unistr2_fstring(remark, &info2->info_2_str.uni_remark);
- rpcstr_pull_unistr2_fstring(path, &info2->info_2_str.uni_path);
- rpcstr_pull_unistr2_fstring(passwd, &info2->info_2_str.uni_passwd);
-
- printf("netname: %s\n", netname);
- printf("\tremark:\t%s\n", remark);
- printf("\tpath:\t%s\n", path);
- printf("\tpassword:\t%s\n", passwd);
+ printf("netname: %s\n", info2->name);
+ printf("\tremark:\t%s\n", info2->comment);
+ printf("\tpath:\t%s\n", info2->path);
+ printf("\tpassword:\t%s\n", info2->password);
}
-static void display_share_info_502(SRV_SHARE_INFO_502 *info502)
+static void display_share_info_502(struct srvsvc_NetShareInfo502 *info502)
{
- fstring netname = "", remark = "", path = "", passwd = "";
-
- rpcstr_pull_unistr2_fstring(netname, &info502->info_502_str.uni_netname);
- rpcstr_pull_unistr2_fstring(remark, &info502->info_502_str.uni_remark);
- rpcstr_pull_unistr2_fstring(path, &info502->info_502_str.uni_path);
- rpcstr_pull_unistr2_fstring(passwd, &info502->info_502_str.uni_passwd);
-
- printf("netname: %s\n", netname);
- printf("\tremark:\t%s\n", remark);
- printf("\tpath:\t%s\n", path);
- printf("\tpassword:\t%s\n", passwd);
-
- printf("\ttype:\t0x%x\n", info502->info_502.type);
- printf("\tperms:\t%d\n", info502->info_502.perms);
- printf("\tmax_uses:\t%d\n", info502->info_502.max_uses);
- printf("\tnum_uses:\t%d\n", info502->info_502.num_uses);
+ printf("netname: %s\n", info502->name);
+ printf("\tremark:\t%s\n", info502->comment);
+ printf("\tpath:\t%s\n", info502->path);
+ printf("\tpassword:\t%s\n", info502->password);
+
+ printf("\ttype:\t0x%x\n", info502->type);
+ printf("\tperms:\t%d\n", info502->permissions);
+ printf("\tmax_uses:\t%d\n", info502->max_users);
+ printf("\tnum_uses:\t%d\n", info502->current_users);
- if (info502->info_502_str.sd)
- display_sec_desc(info502->info_502_str.sd);
+ if (info502->sd)
+ display_sec_desc(info502->sd);
}
@@ -275,10 +243,11 @@ static WERROR cmd_srvsvc_net_share_enum(struct rpc_pipe_client *cli,
int argc, const char **argv)
{
uint32 info_level = 2;
- SRV_SHARE_INFO_CTR ctr;
+ union srvsvc_NetShareCtr ctr;
WERROR result;
- ENUM_HND hnd;
+ uint32 hnd;
uint32 preferred_len = 0xffffffff, i;
+ uint32 numentries;
if (argc > 2) {
printf("Usage: %s [infolevel]\n", argv[0]);
@@ -288,28 +257,29 @@ static WERROR cmd_srvsvc_net_share_enum(struct rpc_pipe_client *cli,
if (argc == 2)
info_level = atoi(argv[1]);
- init_enum_hnd(&hnd, 0);
+ hnd = 0;
- result = rpccli_srvsvc_net_share_enum(
- cli, mem_ctx, info_level, &ctr, preferred_len, &hnd);
+ result = rpccli_srvsvc_NetShareEnum(
+ cli, mem_ctx, NULL, &info_level, &ctr, preferred_len, &numentries,
+ &hnd);
- if (!W_ERROR_IS_OK(result) || !ctr.num_entries)
+ if (!W_ERROR_IS_OK(result) || !numentries)
goto done;
/* Display results */
switch (info_level) {
case 1:
- for (i = 0; i < ctr.num_entries; i++)
- display_share_info_1(&ctr.share.info1[i]);
+ for (i = 0; i < numentries; i++)
+ display_share_info_1(&ctr.ctr1->array[i]);
break;
case 2:
- for (i = 0; i < ctr.num_entries; i++)
- display_share_info_2(&ctr.share.info2[i]);
+ for (i = 0; i < numentries; i++)
+ display_share_info_2(&ctr.ctr2->array[i]);
break;
case 502:
- for (i = 0; i < ctr.num_entries; i++)
- display_share_info_502(&ctr.share.info502[i]);
+ for (i = 0; i < numentries; i++)
+ display_share_info_502(&ctr.ctr502->array[i]);
break;
default:
printf("unsupported info level %d\n", info_level);
@@ -325,7 +295,7 @@ static WERROR cmd_srvsvc_net_share_get_info(struct rpc_pipe_client *cli,
int argc, const char **argv)
{
uint32 info_level = 502;
- SRV_SHARE_INFO info;
+ union srvsvc_NetShareInfo info;
WERROR result;
if (argc > 3) {
@@ -336,7 +306,7 @@ static WERROR cmd_srvsvc_net_share_get_info(struct rpc_pipe_client *cli,
if (argc == 3)
info_level = atoi(argv[2]);
- result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, argv[1], info_level, &info);
+ result = rpccli_srvsvc_NetShareGetInfo(cli, mem_ctx, NULL, argv[1], info_level, &info);
if (!W_ERROR_IS_OK(result))
goto done;
@@ -345,13 +315,13 @@ static WERROR cmd_srvsvc_net_share_get_info(struct rpc_pipe_client *cli,
switch (info_level) {
case 1:
- display_share_info_1(&info.share.info1);
+ display_share_info_1(info.info1);
break;
case 2:
- display_share_info_2(&info.share.info2);
+ display_share_info_2(info.info2);
break;
case 502:
- display_share_info_502(&info.share.info502);
+ display_share_info_502(info.info502);
break;
default:
printf("unsupported info level %d\n", info_level);
@@ -367,8 +337,9 @@ static WERROR cmd_srvsvc_net_share_set_info(struct rpc_pipe_client *cli,
int argc, const char **argv)
{
uint32 info_level = 502;
- SRV_SHARE_INFO info_get;
+ union srvsvc_NetShareInfo info_get;
WERROR result;
+ uint32 parm_error;
if (argc > 3) {
printf("Usage: %s [sharename] [comment]\n", argv[0]);
@@ -376,26 +347,22 @@ static WERROR cmd_srvsvc_net_share_set_info(struct rpc_pipe_client *cli,
}
/* retrieve share info */
- result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, argv[1], info_level, &info_get);
+ result = rpccli_srvsvc_NetShareGetInfo(cli, mem_ctx, NULL, argv[1], info_level, &info_get);
if (!W_ERROR_IS_OK(result))
goto done;
- info_get.switch_value = info_level;
- info_get.ptr_share_ctr = 1;
- init_unistr2(&(info_get.share.info502.info_502_str.uni_remark), argv[2], UNI_STR_TERMINATE);
-
/* set share info */
- result = rpccli_srvsvc_net_share_set_info(cli, mem_ctx, argv[1], info_level, &info_get);
+ result = rpccli_srvsvc_NetShareSetInfo(cli, mem_ctx, NULL, argv[1], info_level, info_get, &parm_error);
if (!W_ERROR_IS_OK(result))
goto done;
/* re-retrieve share info and display */
- result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, argv[1], info_level, &info_get);
+ result = rpccli_srvsvc_NetShareGetInfo(cli, mem_ctx, NULL, argv[1], info_level, &info_get);
if (!W_ERROR_IS_OK(result))
goto done;
- display_share_info_502(&info_get.share.info502);
+ display_share_info_502(info_get.info502);
done:
return result;
@@ -405,9 +372,9 @@ static WERROR cmd_srvsvc_net_remote_tod(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
int argc, const char **argv)
{
- TIME_OF_DAY_INFO tod;
fstring srv_name_slash;
WERROR result;
+ struct srvsvc_NetRemoteTODInfo tod;
if (argc > 1) {
printf("Usage: %s\n", argv[0]);
@@ -415,7 +382,7 @@ static WERROR cmd_srvsvc_net_remote_tod(struct rpc_pipe_client *cli,
}
fstr_sprintf(srv_name_slash, "\\\\%s", cli->cli->desthost);
- result = rpccli_srvsvc_net_remote_tod(
+ result = rpccli_srvsvc_NetRemoteTOD(
cli, mem_ctx, srv_name_slash, &tod);
if (!W_ERROR_IS_OK(result))
@@ -430,10 +397,11 @@ static WERROR cmd_srvsvc_net_file_enum(struct rpc_pipe_client *cli,
int argc, const char **argv)
{
uint32 info_level = 3;
- SRV_FILE_INFO_CTR ctr;
+ union srvsvc_NetFileCtr ctr;
WERROR result;
- ENUM_HND hnd;
+ uint32 hnd;
uint32 preferred_len = 0xffff;
+ uint32 numentries;
if (argc > 2) {
printf("Usage: %s [infolevel]\n", argv[0]);
@@ -443,12 +411,12 @@ static WERROR cmd_srvsvc_net_file_enum(struct rpc_pipe_client *cli,
if (argc == 2)
info_level = atoi(argv[1]);
- init_enum_hnd(&hnd, 0);
+ hnd = 0;
ZERO_STRUCT(ctr);
- result = rpccli_srvsvc_net_file_enum(
- cli, mem_ctx, info_level, NULL, &ctr, preferred_len, &hnd);
+ result = rpccli_srvsvc_NetFileEnum(
+ cli, mem_ctx, NULL, NULL, NULL, &info_level, &ctr, preferred_len, &numentries, &hnd);
if (!W_ERROR_IS_OK(result))
goto done;