This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "includes.h"
return typestr;
}
-static void display_server(const char *sname, uint32 type, const char *comment)
+static void display_server(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(struct srvsvc_NetSrvInfo101 *sv101)
+static void display_srv_info_101(SRV_INFO_101 *sv101)
{
- display_server(sv101->server_name, sv101->server_type, sv101->comment);
+ fstring name;
+ fstring comment;
+
+ unistr2_to_ascii(name, &sv101->uni_name, sizeof(name));
+ unistr2_to_ascii(comment, &sv101->uni_comment, sizeof(comment));
+
+ display_server(name, sv101->srv_type, comment);
printf("\tplatform_id :\t%d\n", sv101->platform_id);
- printf("\tos version :\t%d.%d\n", sv101->version_major,
- sv101->version_minor);
+ printf("\tos version :\t%d.%d\n", sv101->ver_major,
+ sv101->ver_minor);
- printf("\tserver type :\t0x%x\n", sv101->server_type);
+ printf("\tserver type :\t0x%x\n", sv101->srv_type);
}
-static void display_srv_info_102(struct srvsvc_NetSrvInfo102 *sv102)
+static void display_srv_info_102(SRV_INFO_102 *sv102)
{
- display_server(sv102->server_name, sv102->server_type,
- sv102->comment);
+ fstring name;
+ fstring comment;
+ fstring usr_path;
+
+ unistr2_to_ascii(name, &sv102->uni_name, sizeof(name));
+ unistr2_to_ascii(comment, &sv102->uni_comment, sizeof(comment));
+ unistr2_to_ascii(usr_path, &sv102->uni_usr_path, sizeof(usr_path));
+
+ display_server(name, sv102->srv_type, comment);
printf("\tplatform_id :\t%d\n", sv102->platform_id);
- printf("\tos version :\t%d.%d\n", sv102->version_major,
- sv102->version_minor);
+ printf("\tos version :\t%d.%d\n", sv102->ver_major,
+ sv102->ver_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->anndelta);
+ sv102->ann_delta);
printf("\tlicenses :\t%d\n", sv102->licenses);
- printf("\tuser path :\t%s\n", sv102->userpath);
+ printf("\tuser path :\t%s\n", usr_path);
}
/* Server query info */
int argc, const char **argv)
{
uint32 info_level = 101;
- union srvsvc_NetSrvInfo ctr;
+ SRV_INFO_CTR ctr;
WERROR result;
if (argc > 2) {
if (argc == 2)
info_level = atoi(argv[1]);
- result = rpccli_srvsvc_NetSrvGetInfo(cli, mem_ctx, NULL, info_level,
+ result = rpccli_srvsvc_net_srv_get_info(cli, mem_ctx, info_level,
&ctr);
if (!W_ERROR_IS_OK(result)) {
switch (info_level) {
case 101:
- display_srv_info_101(ctr.info101);
+ display_srv_info_101(&ctr.srv.sv101);
break;
case 102:
- display_srv_info_102(ctr.info102);
+ display_srv_info_102(&ctr.srv.sv102);
break;
default:
printf("unsupported info level %d\n", info_level);
return result;
}
-static void display_share_info_1(struct srvsvc_NetShareInfo1 *info1)
+static void display_share_info_1(SRV_SHARE_INFO_1 *info1)
{
- printf("netname: %s\n", info1->name);
- printf("\tremark:\t%s\n", info1->comment);
+ 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);
}
-static void display_share_info_2(struct srvsvc_NetShareInfo2 *info2)
+static void display_share_info_2(SRV_SHARE_INFO_2 *info2)
{
- 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);
+ 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);
}
-static void display_share_info_502(struct srvsvc_NetShareInfo502 *info502)
+static void display_share_info_502(SRV_SHARE_INFO_502 *info502)
{
- 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);
+ 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);
- if (info502->sd)
- display_sec_desc(info502->sd);
+ if (info502->info_502_str.sd)
+ display_sec_desc(info502->info_502_str.sd);
}
int argc, const char **argv)
{
uint32 info_level = 2;
- union srvsvc_NetShareCtr ctr;
+ SRV_SHARE_INFO_CTR ctr;
WERROR result;
- uint32 hnd;
+ ENUM_HND hnd;
uint32 preferred_len = 0xffffffff, i;
- uint32 numentries;
if (argc > 2) {
printf("Usage: %s [infolevel]\n", argv[0]);
if (argc == 2)
info_level = atoi(argv[1]);
- hnd = 0;
+ init_enum_hnd(&hnd, 0);
- result = rpccli_srvsvc_NetShareEnum(
- cli, mem_ctx, NULL, &info_level, &ctr, preferred_len, &numentries,
- &hnd);
+ result = rpccli_srvsvc_net_share_enum(
+ cli, mem_ctx, info_level, &ctr, preferred_len, &hnd);
- if (!W_ERROR_IS_OK(result) || !numentries)
+ if (!W_ERROR_IS_OK(result) || !ctr.num_entries)
goto done;
/* Display results */
switch (info_level) {
case 1:
- for (i = 0; i < numentries; i++)
- display_share_info_1(&ctr.ctr1->array[i]);
+ for (i = 0; i < ctr.num_entries; i++)
+ display_share_info_1(&ctr.share.info1[i]);
break;
case 2:
- for (i = 0; i < numentries; i++)
- display_share_info_2(&ctr.ctr2->array[i]);
+ for (i = 0; i < ctr.num_entries; i++)
+ display_share_info_2(&ctr.share.info2[i]);
break;
case 502:
- for (i = 0; i < numentries; i++)
- display_share_info_502(&ctr.ctr502->array[i]);
+ for (i = 0; i < ctr.num_entries; i++)
+ display_share_info_502(&ctr.share.info502[i]);
break;
default:
printf("unsupported info level %d\n", info_level);
int argc, const char **argv)
{
uint32 info_level = 502;
- union srvsvc_NetShareInfo info;
+ SRV_SHARE_INFO info;
WERROR result;
if (argc > 3) {
if (argc == 3)
info_level = atoi(argv[2]);
- result = rpccli_srvsvc_NetShareGetInfo(cli, mem_ctx, NULL, argv[1], info_level, &info);
+ result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, argv[1], info_level, &info);
if (!W_ERROR_IS_OK(result))
goto done;
switch (info_level) {
case 1:
- display_share_info_1(info.info1);
+ display_share_info_1(&info.share.info1);
break;
case 2:
- display_share_info_2(info.info2);
+ display_share_info_2(&info.share.info2);
break;
case 502:
- display_share_info_502(info.info502);
+ display_share_info_502(&info.share.info502);
break;
default:
printf("unsupported info level %d\n", info_level);
int argc, const char **argv)
{
uint32 info_level = 502;
- union srvsvc_NetShareInfo info_get;
+ SRV_SHARE_INFO info_get;
WERROR result;
- uint32 parm_error;
if (argc > 3) {
printf("Usage: %s [sharename] [comment]\n", argv[0]);
}
/* retrieve share info */
- result = rpccli_srvsvc_NetShareGetInfo(cli, mem_ctx, NULL, argv[1], info_level, &info_get);
+ result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, 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_NetShareSetInfo(cli, mem_ctx, NULL, argv[1], info_level, info_get, &parm_error);
+ result = rpccli_srvsvc_net_share_set_info(cli, mem_ctx, argv[1], info_level, &info_get);
if (!W_ERROR_IS_OK(result))
goto done;
/* re-retrieve share info and display */
- result = rpccli_srvsvc_NetShareGetInfo(cli, mem_ctx, NULL, argv[1], info_level, &info_get);
+ result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, argv[1], info_level, &info_get);
if (!W_ERROR_IS_OK(result))
goto done;
- display_share_info_502(info_get.info502);
+ display_share_info_502(&info_get.share.info502);
done:
return result;
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]);
}
fstr_sprintf(srv_name_slash, "\\\\%s", cli->cli->desthost);
- result = rpccli_srvsvc_NetRemoteTOD(
+ result = rpccli_srvsvc_net_remote_tod(
cli, mem_ctx, srv_name_slash, &tod);
if (!W_ERROR_IS_OK(result))
int argc, const char **argv)
{
uint32 info_level = 3;
- union srvsvc_NetFileCtr ctr;
+ SRV_FILE_INFO_CTR ctr;
WERROR result;
- uint32 hnd;
+ ENUM_HND hnd;
uint32 preferred_len = 0xffff;
- uint32 numentries;
if (argc > 2) {
printf("Usage: %s [infolevel]\n", argv[0]);
if (argc == 2)
info_level = atoi(argv[1]);
- hnd = 0;
+ init_enum_hnd(&hnd, 0);
ZERO_STRUCT(ctr);
- result = rpccli_srvsvc_NetFileEnum(
- cli, mem_ctx, NULL, NULL, NULL, &info_level, &ctr, preferred_len, &numentries, &hnd);
+ result = rpccli_srvsvc_net_file_enum(
+ cli, mem_ctx, info_level, NULL, &ctr, preferred_len, &hnd);
if (!W_ERROR_IS_OK(result))
goto done;