From: Michael Adam Date: Wed, 22 Sep 2010 04:27:49 +0000 (+0200) Subject: s3:net: add subcommand net registry deletekey_recursive X-Git-Url: http://git.samba.org/?p=obnox%2Fsamba-ctdb.git;a=commitdiff_plain;h=6773e6e833c9d35cbdfdfd02c3f84db1ecd4a86f s3:net: add subcommand net registry deletekey_recursive to delete a key including subkeys --- diff --git a/source3/utils/net_registry.c b/source3/utils/net_registry.c index f0db17a8bc..c23b2a3ef8 100644 --- a/source3/utils/net_registry.c +++ b/source3/utils/net_registry.c @@ -226,8 +226,9 @@ done: return ret; } -static int net_registry_deletekey(struct net_context *c, int argc, - const char **argv) +static int net_registry_deletekey_internal(struct net_context *c, int argc, + const char **argv, + bool recursive) { WERROR werr; char *subkeyname; @@ -252,7 +253,11 @@ static int net_registry_deletekey(struct net_context *c, int argc, goto done; } - werr = reg_deletekey(hivekey, subkeyname); + if (recursive) { + werr = reg_deletekey_recursive(hivekey, subkeyname); + } else { + werr = reg_deletekey(hivekey, subkeyname); + } if (!W_ERROR_IS_OK(werr)) { d_fprintf(stderr, "reg_deletekey failed: %s\n", win_errstr(werr)); @@ -266,6 +271,18 @@ done: return ret; } +static int net_registry_deletekey(struct net_context *c, int argc, + const char **argv) +{ + return net_registry_deletekey_internal(c, argc, argv, false); +} + +static int net_registry_deletekey_recursive(struct net_context *c, int argc, + const char **argv) +{ + return net_registry_deletekey_internal(c, argc, argv, true); +} + static int net_registry_getvalue_internal(struct net_context *c, int argc, const char **argv, bool raw) { @@ -1105,6 +1122,14 @@ int net_registry(struct net_context *c, int argc, const char **argv) "net registry deletekey\n" " Delete a registry key" }, + { + "deletekey_recursive", + net_registry_deletekey_recursive, + NET_TRANSPORT_LOCAL, + N_("Delete a registry key with subkeys"), + N_("net registry deletekey_recursive\n" + " Delete a registry key with subkeys") + }, { "getvalue", net_registry_getvalue,