[SCM] Samba Shared Repository - branch master updated
Volker Lendecke
vlendec at samba.org
Fri Jun 12 04:40:04 MDT 2015
The branch, master has been updated
via b73121f docs: Add missing SRVSVC entries in rpcclient manpage
via ec608ca rpcclient: Add netsharesetdfsflags command
via b0ccfa0 rpcclient: Add info level 1005 for netsharegetinfo
via a90beeb rpcclient: Add netsharedel command
via ffa415f rpcclient: Add netshareadd command
from eef3dab KCC: use python 2.6 compatible dictonary comprehensions
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit b73121f383bdabf7645dacb7ba055f7d3181f8a8
Author: Christof Schmitt <cs at samba.org>
Date: Thu Jun 11 15:21:17 2015 -0700
docs: Add missing SRVSVC entries in rpcclient manpage
Signed-off-by: Christof Schmitt <cs at samba.org>
Reviewed-by: Volker Lendecke <vl at samba.org>
Autobuild-User(master): Volker Lendecke <vl at samba.org>
Autobuild-Date(master): Fri Jun 12 12:39:08 CEST 2015 on sn-devel-104
commit ec608cab0ae1b275f988735c2de42ec48f238186
Author: Christof Schmitt <cs at samba.org>
Date: Thu Jun 11 15:03:41 2015 -0700
rpcclient: Add netsharesetdfsflags command
This allows setting the DFS flags through a NetShareSetInfo with info
level 1005.
Signed-off-by: Christof Schmitt <cs at samba.org>
Reviewed-by: Volker Lendecke <vl at samba.org>
commit b0ccfa0c3888d9d0796bbcc05b6a89f8f6202bb3
Author: Christof Schmitt <cs at samba.org>
Date: Thu Jun 11 13:55:15 2015 -0700
rpcclient: Add info level 1005 for netsharegetinfo
This allows querying the DFS flags and the csc policy. Also update the
usage info that ths share name is not optional and print the supported
info levels.
Signed-off-by: Christof Schmitt <cs at samba.org>
Reviewed-by: Volker Lendecke <vl at samba.org>
commit a90beeb6a6f98fd484aae8e6676e78e45cc34fe1
Author: Christof Schmitt <cs at samba.org>
Date: Thu Jun 11 12:06:33 2015 -0700
rpcclient: Add netsharedel command
Signed-off-by: Christof Schmitt <cs at samba.org>
Reviewed-by: Volker Lendecke <vl at samba.org>
commit ffa415fbcec05484fdea79ba0b23409de4ca581a
Author: Christof Schmitt <cs at samba.org>
Date: Thu Jun 11 11:53:43 2015 -0700
rpcclient: Add netshareadd command
Signed-off-by: Christof Schmitt <cs at samba.org>
Reviewed-by: Volker Lendecke <vl at samba.org>
-----------------------------------------------------------------------
Summary of changes:
docs-xml/manpages/rpcclient.1.xml | 16 +++--
source3/rpcclient/cmd_srvsvc.c | 144 +++++++++++++++++++++++++++++++++++++-
2 files changed, 155 insertions(+), 5 deletions(-)
Changeset truncated at 500 lines:
diff --git a/docs-xml/manpages/rpcclient.1.xml b/docs-xml/manpages/rpcclient.1.xml
index cbe1bb8..aae55d2 100644
--- a/docs-xml/manpages/rpcclient.1.xml
+++ b/docs-xml/manpages/rpcclient.1.xml
@@ -178,13 +178,21 @@
<variablelist>
<varlistentry><term>srvinfo</term><listitem><para>Server query info</para></listitem></varlistentry>
-
<varlistentry><term>netshareenum</term><listitem><para>Enumerate shares</para></listitem></varlistentry>
-
+ <varlistentry><term>netshareenumall</term><listitem><para>Enumerate all shares</para></listitem></varlistentry>
+ <varlistentry><term>netsharegetinfo</term><listitem><para>Get Share Info</para></listitem></varlistentry>
+ <varlistentry><term>netsharesetinfo</term><listitem><para>Set Share Info</para></listitem></varlistentry>
+ <varlistentry><term>netsharesetdfsflags</term><listitem><para>Set DFS flags</para></listitem></varlistentry>
<varlistentry><term>netfileenum</term><listitem><para>Enumerate open files</para></listitem></varlistentry>
-
<varlistentry><term>netremotetod</term><listitem><para>Fetch remote time of day</para></listitem></varlistentry>
-
+ <varlistentry><term>netnamevalidate</term><listitem><para>Validate sharename</para></listitem></varlistentry>
+ <varlistentry><term>netfilegetsec</term><listitem><para>Get File security</para></listitem></varlistentry>
+ <varlistentry><term>netsessdel</term><listitem><para>Delete Session</para></listitem></varlistentry>
+ <varlistentry><term>netsessenum</term><listitem><para>Enumerate Sessions</para></listitem></varlistentry>
+ <varlistentry><term>netdiskenum</term><listitem><para>Enumerate Disks</para></listitem></varlistentry>
+ <varlistentry><term>netconnenum</term><listitem><para>Enumerate Connections</para></listitem></varlistentry>
+ <varlistentry><term>netshareadd</term><listitem><para>Add share</para></listitem></varlistentry>
+ <varlistentry><term>netsharedel</term><listitem><para>Delete share</para></listitem></varlistentry>
</variablelist>
</refsect2>
diff --git a/source3/rpcclient/cmd_srvsvc.c b/source3/rpcclient/cmd_srvsvc.c
index 6ad03d1..0174002 100644
--- a/source3/rpcclient/cmd_srvsvc.c
+++ b/source3/rpcclient/cmd_srvsvc.c
@@ -253,6 +253,14 @@ static void display_share_info_502(struct srvsvc_NetShareInfo502 *r)
}
+static void display_share_info_1005(struct srvsvc_NetShareInfo1005 *r)
+{
+ printf("flags: 0x%x\n", r->dfs_flags);
+ printf("csc caching: %u\n",
+ (r->dfs_flags & SHARE_1005_CSC_POLICY_MASK) >>
+ SHARE_1005_CSC_POLICY_SHIFT);
+}
+
static WERROR cmd_srvsvc_net_share_enum_int(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
int argc, const char **argv,
@@ -427,7 +435,8 @@ static WERROR cmd_srvsvc_net_share_get_info(struct rpc_pipe_client *cli,
struct dcerpc_binding_handle *b = cli->binding_handle;
if (argc < 2 || argc > 3) {
- printf("Usage: %s [sharename] [infolevel]\n", argv[0]);
+ printf("Usage: %s sharename [infolevel 1|2|502|1005]\n",
+ argv[0]);
return WERR_OK;
}
@@ -461,6 +470,9 @@ static WERROR cmd_srvsvc_net_share_get_info(struct rpc_pipe_client *cli,
case 502:
display_share_info_502(info.info502);
break;
+ case 1005:
+ display_share_info_1005(info.info1005);
+ break;
default:
printf("unsupported info level %d\n", info_level);
break;
@@ -542,6 +554,61 @@ static WERROR cmd_srvsvc_net_share_set_info(struct rpc_pipe_client *cli,
return result;
}
+static WERROR cmd_srvsvc_net_share_set_dfs_flags(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ int argc, const char **argv)
+{
+ struct srvsvc_NetShareInfo1005 info1005 = { 0 };
+ union srvsvc_NetShareInfo info = { .info1005 = &info1005 };
+ WERROR result;
+ NTSTATUS status;
+ uint32_t parm_err = 0;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
+
+ if (argc > 3) {
+ printf("Usage: %s [sharename] [dfsflags]\n", argv[0]);
+ return WERR_OK;
+ }
+
+ if (argc > 2) {
+ info.info1005->dfs_flags = strtol(argv[2], NULL, 0);
+ }
+
+ /* set share info */
+ status = dcerpc_srvsvc_NetShareSetInfo(b, mem_ctx,
+ cli->desthost,
+ argv[1],
+ 1005,
+ &info,
+ &parm_err,
+ &result);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
+ if (!W_ERROR_IS_OK(result)) {
+ return result;
+ }
+
+ /* re-retrieve share info and display */
+ status = dcerpc_srvsvc_NetShareGetInfo(b, mem_ctx,
+ cli->desthost,
+ argv[1],
+ 1005,
+ &info,
+ &result);
+ if (!NT_STATUS_IS_OK(status)) {
+ return ntstatus_to_werror(status);
+ }
+ if (!W_ERROR_IS_OK(result)) {
+ return result;
+ }
+
+ display_share_info_1005(info.info1005);
+
+ return result;
+}
+
static WERROR cmd_srvsvc_net_remote_tod(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
int argc, const char **argv)
@@ -941,6 +1008,78 @@ static WERROR cmd_srvsvc_net_conn_enum(struct rpc_pipe_client *cli,
return result;
}
+static WERROR cmd_srvsvc_net_share_add(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ int argc, const char **argv)
+{
+ struct srvsvc_NetShareInfo502 info502 = { 0 };
+ union srvsvc_NetShareInfo info = { .info502 = &info502 };
+ WERROR result;
+ NTSTATUS status;
+ uint32_t max_users = -1, parm_error;
+ struct sec_desc_buf sd_buf = { 0 };
+ const char *path, *share_name, *comment = NULL;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
+
+ if (argc < 3 || argc > 5) {
+ printf("Usage: %s path share_name [max_users] [comment]\n",
+ argv[0]);
+ return WERR_OK;
+ }
+
+ path = argv[1];
+ share_name = argv[2];
+
+ if (argc >= 4) {
+ max_users = atoi(argv[3]);
+ }
+
+ if (argc >= 5) {
+ comment = argv[4];
+ }
+
+ info.info502->name = share_name;
+ info.info502->type = STYPE_DISKTREE;
+ info.info502->comment = comment;
+ info.info502->max_users = max_users;
+ info.info502->path = path;
+ info.info502->sd_buf = sd_buf;
+
+ status = dcerpc_srvsvc_NetShareAdd(b, mem_ctx, cli->desthost,
+ 502, &info, &parm_error, &result);
+ if (!NT_STATUS_IS_OK(status)) {
+ result = ntstatus_to_werror(status);
+ }
+
+ return result;
+}
+
+static WERROR cmd_srvsvc_net_share_del(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ int argc, const char **argv)
+{
+ const char *share_name;
+ WERROR result;
+ NTSTATUS status;
+ struct dcerpc_binding_handle *b = cli->binding_handle;
+
+ if (argc < 2) {
+ printf("Usage: %s share_name\n", argv[0]);
+ return WERR_OK;
+ }
+
+ share_name = argv[1];
+
+ status = dcerpc_srvsvc_NetShareDel(b, mem_ctx, cli->desthost,
+ share_name, 0, &result);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ result = ntstatus_to_werror(status);
+ }
+
+ return result;
+}
+
/* List of commands exported by this module */
@@ -953,6 +1092,7 @@ struct cmd_set srvsvc_commands[] = {
{ "netshareenumall",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_enum_all, &ndr_table_srvsvc, NULL, "Enumerate all shares", "" },
{ "netsharegetinfo",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_get_info, &ndr_table_srvsvc, NULL, "Get Share Info", "" },
{ "netsharesetinfo",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_set_info, &ndr_table_srvsvc, NULL, "Set Share Info", "" },
+ { "netsharesetdfsflags",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_set_dfs_flags, &ndr_table_srvsvc, NULL, "Set DFS flags", "" },
{ "netfileenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_file_enum, &ndr_table_srvsvc, NULL, "Enumerate open files", "" },
{ "netremotetod",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_remote_tod, &ndr_table_srvsvc, NULL, "Fetch remote time of day", "" },
{ "netnamevalidate", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_name_validate, &ndr_table_srvsvc, NULL, "Validate sharename", "" },
@@ -961,6 +1101,8 @@ struct cmd_set srvsvc_commands[] = {
{ "netsessenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_sess_enum, &ndr_table_srvsvc, NULL, "Enumerate Sessions", "" },
{ "netdiskenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_disk_enum, &ndr_table_srvsvc, NULL, "Enumerate Disks", "" },
{ "netconnenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_conn_enum, &ndr_table_srvsvc, NULL, "Enumerate Connections", "" },
+ { "netshareadd", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_add, &ndr_table_srvsvc, NULL, "Add share", "" },
+ { "netsharedel", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_del, &ndr_table_srvsvc, NULL, "Delete share", "" },
{ NULL }
};
--
Samba Shared Repository
More information about the samba-cvs
mailing list