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;
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));
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)
{
"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,