From f9a6d1f2645eef2654a8ff1fc59e83ee762d4014 Mon Sep 17 00:00:00 2001 From: Kai Blin Date: Wed, 14 May 2008 14:24:21 +0200 Subject: net: Split out "net share" (This used to be commit 25d4c6f692cf50d675a1de7c6eaeed271f349289) --- source3/utils/net.c | 7 ----- source3/utils/net_help.c | 41 +------------------------ source3/utils/net_proto.h | 6 +++- source3/utils/net_rap.c | 2 +- source3/utils/net_rpc.c | 2 +- source3/utils/net_share.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 85 insertions(+), 50 deletions(-) create mode 100644 source3/utils/net_share.c (limited to 'source3/utils') diff --git a/source3/utils/net.c b/source3/utils/net.c index 15064302cd..99e1e0c889 100644 --- a/source3/utils/net.c +++ b/source3/utils/net.c @@ -174,13 +174,6 @@ static int net_changesecretpw(struct net_context *c, int argc, return 0; } -static int net_share(struct net_context *c, int argc, const char **argv) -{ - if (net_rpc_check(c, 0)) - return net_rpc_share(c, argc, argv); - return net_rap_share(c, argc, argv); -} - /* Retrieve our local SID or the SID for the specified name */ diff --git a/source3/utils/net_help.c b/source3/utils/net_help.c index ffd533eedd..9648f2f8f7 100644 --- a/source3/utils/net_help.c +++ b/source3/utils/net_help.c @@ -33,45 +33,6 @@ static int help_usage(struct net_context *c, int argc, const char **argv) return -1; } -int net_help_share(struct net_context *c, int argc, const char **argv) -{ - d_printf( - "\nnet [] share [misc. options] [targets] \n" - "\tenumerates all exported resources (network shares) " - "on target server\n\n" - "net [] share ADD [misc. options] [targets]" - "\n\tadds a share from a server (makes the export active)\n\n" - "net [] share DELETE [misc. options] [targets]" - "\n\tdeletes a share from a server (makes the export inactive)\n\n" - "net [] share ALLOWEDUSERS [] " - "[misc. options] [targets]" - "\n\tshows a list of all shares together with all users allowed to" - "\n\taccess them. This needs the output of 'net usersidlist' on" - "\n\tstdin or in .\n\n" - "net [] share MIGRATE FILES [misc. options] [targets]" - "\n\tMigrates files from remote to local server\n\n" - "net [] share MIGRATE SHARES [misc. options] [targets]" - "\n\tMigrates shares from remote to local server\n\n" - "net [] share MIGRATE SECURITY [misc. options] [targets]" - "\n\tMigrates share-ACLs from remote to local server\n\n" - "net [] share MIGRATE ALL [misc. options] [targets]" - "\n\tMigrates shares (including directories, files) from remote\n" - "\tto local server\n\n" - ); - net_common_methods_usage(c, argc, argv); - net_common_flags_usage(c, argc, argv); - d_printf( - "\t-C or --comment=\tdescriptive comment (for add only)\n" - "\t-M or --maxusers=\t\tmax users allowed for share\n" - "\t --acls\t\t\tcopies ACLs as well\n" - "\t --attrs\t\t\tcopies DOS Attributes as well\n" - "\t --timestamps\t\tpreserve timestamps while copying files\n" - "\t --destination\t\tmigration target server (default: localhost)\n" - "\t-e or --exclude\t\t\tlist of shares to be excluded from mirroring\n" - "\t-v or --verbose\t\t\tgive verbose output\n"); - return -1; -} - int net_help_printer(struct net_context *c, int argc, const char **argv) { d_printf("net rpc printer LIST [printer] [misc. options] [targets]\n"\ @@ -154,7 +115,7 @@ int net_help(struct net_context *c, int argc, const char **argv) {"RPC", net_rpc_help}, {"FILE", net_file_usage}, - {"SHARE", net_help_share}, + {"SHARE", net_share_usage}, {"SESSION", net_rap_session_usage}, {"SERVER", net_rap_server_usage}, {"DOMAIN", net_rap_domain_usage}, diff --git a/source3/utils/net_proto.h b/source3/utils/net_proto.h index 3a98c3bc01..1472e8feb8 100644 --- a/source3/utils/net_proto.h +++ b/source3/utils/net_proto.h @@ -117,7 +117,6 @@ int net_groupmap(struct net_context *c, int argc, const char **argv); /* The following definitions come from utils/net_help.c */ -int net_help_share(struct net_context *c, int argc, const char **argv); int net_help_printer(struct net_context *c, int argc, const char **argv); int net_help_status(struct net_context *c, int argc, const char **argv); int net_help(struct net_context *c, int argc, const char **argv); @@ -404,6 +403,11 @@ int net_rpc_shell(struct net_context *c, int argc, const char **argv); int net_sam(struct net_context *c, int argc, const char **argv); +/* The following definitions come from utils/net_share.c */ + +int net_share_usage(struct net_context *c, int argc, const char **argv); +int net_share(struct net_context *c, int argc, const char **argv); + /* The following definitions come from utils/net_status.c */ int net_status(struct net_context *c, int argc, const char **argv); diff --git a/source3/utils/net_rap.c b/source3/utils/net_rap.c index 0d67dcf71d..32d9fbe409 100644 --- a/source3/utils/net_rap.c +++ b/source3/utils/net_rap.c @@ -166,7 +166,7 @@ int net_rap_file(struct net_context *c, int argc, const char **argv) int net_rap_share_usage(struct net_context *c, int argc, const char **argv) { - return net_help_share(c, argc, argv); + return net_share_usage(c, argc, argv); } static void long_share_fn(const char *share_name, uint32 type, diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c index 375c1518ab..fc22ca9daf 100644 --- a/source3/utils/net_rpc.c +++ b/source3/utils/net_rpc.c @@ -3059,7 +3059,7 @@ int net_rpc_group(struct net_context *c, int argc, const char **argv) static int rpc_share_usage(struct net_context *c, int argc, const char **argv) { - return net_help_share(c, argc, argv); + return net_share_usage(c, argc, argv); } /** diff --git a/source3/utils/net_share.c b/source3/utils/net_share.c new file mode 100644 index 0000000000..68fcd3b3bd --- /dev/null +++ b/source3/utils/net_share.c @@ -0,0 +1,77 @@ +/* + Samba Unix/Linux SMB client library + net share commands + Copyright (C) 2002 Andrew Tridgell (tridge@samba.org) + Copyright (C) 2008 Kai Blin (kai@samba.org) + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + 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, see . +*/ + +#include "includes.h" +#include "utils/net.h" + +int net_share_usage(struct net_context *c, int argc, const char **argv) +{ + d_printf( + "\nnet [] share [misc. options] [targets] \n" + "\tenumerates all exported resources (network shares) " + "on target server\n\n" + "net [] share ADD [misc. options] [targets]" + "\n\tadds a share from a server (makes the export active)\n\n" + "net [] share DELETE [misc. options] [targets]" + "\n\tdeletes a share from a server (makes the export inactive)\n\n" + "net [] share ALLOWEDUSERS [] " + "[misc. options] [targets]" + "\n\tshows a list of all shares together with all users allowed to" + "\n\taccess them. This needs the output of 'net usersidlist' on" + "\n\tstdin or in .\n\n" + "net [] share MIGRATE FILES [misc. options] [targets]" + "\n\tMigrates files from remote to local server\n\n" + "net [] share MIGRATE SHARES [misc. options] [targets]" + "\n\tMigrates shares from remote to local server\n\n" + "net [] share MIGRATE SECURITY [misc. options] [targets]" + "\n\tMigrates share-ACLs from remote to local server\n\n" + "net [] share MIGRATE ALL [misc. options] [targets]" + "\n\tMigrates shares (including directories, files) from remote\n" + "\tto local server\n\n" + ); + net_common_methods_usage(c, argc, argv); + net_common_flags_usage(c, argc, argv); + d_printf( + "\t-C or --comment=\tdescriptive comment (for add only)\n" + "\t-M or --maxusers=\t\tmax users allowed for share\n" + "\t --acls\t\t\tcopies ACLs as well\n" + "\t --attrs\t\t\tcopies DOS Attributes as well\n" + "\t --timestamps\t\tpreserve timestamps while copying files\n" + "\t --destination\t\tmigration target server (default: localhost)\n" + "\t-e or --exclude\t\t\tlist of shares to be excluded from mirroring\n" + "\t-v or --verbose\t\t\tgive verbose output\n"); + return -1; +} + +int net_share(struct net_context *c, int argc, const char **argv) +{ + if (argc < 1) + return net_share_usage(c, argc, argv); + + if (StrCaseCmp(argv[0], "HELP") == 0) { + net_share_usage(c, argc, argv); + return 0; + } + + if (net_rpc_check(c, 0)) + return net_rpc_share(c, argc, argv); + return net_rap_share(c, argc, argv); +} + -- cgit