summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/utils/net_idmap.c98
1 files changed, 80 insertions, 18 deletions
diff --git a/source3/utils/net_idmap.c b/source3/utils/net_idmap.c
index f3d0c30a4d..9fab29c9a5 100644
--- a/source3/utils/net_idmap.c
+++ b/source3/utils/net_idmap.c
@@ -59,8 +59,13 @@ static int net_idmap_dump(struct net_context *c, int argc, const char **argv)
{
TDB_CONTEXT *idmap_tdb;
- if ( argc != 1 )
- return net_help_idmap(c, argc, argv );
+ if ( argc != 1 || c->display_usage) {
+ d_printf("Usage:\n"
+ "net idmap dump <inputfile>\n"
+ " Dump current ID mapping.\n"
+ " inputfile\tTDB file to read mappings from.\n");
+ return c->display_usage?0:-1;
+ }
idmap_tdb = tdb_open_log(argv[0], 0, TDB_DEFAULT, O_RDONLY, 0);
@@ -85,6 +90,15 @@ static int net_idmap_restore(struct net_context *c, int argc, const char **argv)
TALLOC_CTX *ctx;
FILE *input;
+ if (c->display_usage) {
+ d_printf("Usage:\n"
+ "net idmap restore [inputfile]\n"
+ " Restore ID mappings from file\n"
+ " inputfile\tFile to load ID mappings from. If not "
+ "given, load data from stdin.\n");
+ return 0;
+ }
+
if (! winbind_ping()) {
d_fprintf(stderr, "To use net idmap Winbindd must be running.\n");
return -1;
@@ -217,8 +231,15 @@ static int net_idmap_secret(struct net_context *c, int argc, const char **argv)
char *opt = NULL;
bool ret;
- if (argc != 2) {
- return net_help_idmap(c, argc, argv);
+ if (argc != 2 || c->display_usage) {
+ d_printf("Usage:\n"
+ "net idmap secret {<DOMAIN>|alloc} <secret>\n"
+ " Set the secret for the specified domain "
+ "(or alloc module)\n"
+ " DOMAIN\tDomain to set secret for.\n"
+ " alloc\tSet secret for the alloc module\n"
+ " secret\tNew secret to set.\n");
+ return c->display_usage?0:-1;
}
secret = argv[1];
@@ -279,15 +300,15 @@ static int net_idmap_secret(struct net_context *c, int argc, const char **argv)
int net_help_idmap(struct net_context *c, int argc, const char **argv)
{
- d_printf("net idmap dump <inputfile>\n"\
+ d_printf("net idmap dump <inputfile>\n"
" Dump current id mapping\n");
- d_printf("net idmap restore\n"\
+ d_printf("net idmap restore\n"
" Restore entries from stdin\n");
/* Deliberately *not* document net idmap delete */
- d_printf("net idmap secret <DOMAIN>|alloc <secret>\n"\
+ d_printf("net idmap secret <DOMAIN>|alloc <secret>\n"
" Set the secret for the specified DOMAIN (or the alloc module)\n");
return -1;
@@ -303,7 +324,7 @@ static int net_idmap_aclmapset(struct net_context *c, int argc, const char **arg
struct db_record *rec;
NTSTATUS status;
- if (argc != 3) {
+ if (argc != 3 || c->display_usage) {
d_fprintf(stderr, "usage: net idmap aclmapset <tdb> "
"<src-sid> <dst-sid>\n");
return -1;
@@ -362,18 +383,59 @@ fail:
**********************************************************/
int net_idmap(struct net_context *c, int argc, const char **argv)
{
- struct functable func[] = {
- {"dump", net_idmap_dump},
- {"restore", net_idmap_restore},
- {"setmap", net_idmap_set },
- {"delete", net_idmap_delete},
- {"secret", net_idmap_secret},
- {"aclmapset", net_idmap_aclmapset},
- {"help", net_help_idmap},
- {NULL, NULL}
+ struct functable3 func[] = {
+ {
+ "dump",
+ net_idmap_dump,
+ NET_TRANSPORT_LOCAL,
+ "Dump the current ID mappings",
+ "net idmap dump\n"
+ " Dump the current ID mappings"
+ },
+ {
+ "restore",
+ net_idmap_restore,
+ NET_TRANSPORT_LOCAL,
+ "Restore entries from stdin",
+ "net idmap restore\n"
+ " Restore entries from stdin"
+ },
+ {
+ "setmap",
+ net_idmap_set,
+ NET_TRANSPORT_LOCAL,
+ "Not implemented yet",
+ "net idmap setmap\n"
+ " Not implemented yet"
+ },
+ {
+ "delete",
+ net_idmap_delete,
+ NET_TRANSPORT_LOCAL,
+ "Not implemented yet",
+ "net idmap delete\n"
+ " Not implemented yet"
+ },
+ {
+ "secret",
+ net_idmap_secret,
+ NET_TRANSPORT_LOCAL,
+ "Set secret for specified domain",
+ "net idmap secret {<DOMAIN>|alloc} <secret>\n"
+ " Set secret for specified domain or alloc module"
+ },
+ {
+ "aclmapset",
+ net_idmap_aclmapset,
+ NET_TRANSPORT_LOCAL,
+ "Set acl map",
+ "net idmap aclmapset\n"
+ " Set acl map"
+ },
+ {NULL, NULL, 0, NULL, NULL}
};
- return net_run_function(c, argc, argv, func, net_help_idmap);
+ return net_run_function3(c, argc, argv, "net idmap", func);
}