From 873bc06d95371e446de391a183db0b326ca529bd Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 14 Aug 2007 15:29:42 +0000 Subject: r24418: Adding reg_deleteallvalues(). Guenther (This used to be commit f7457c6173107f1730ae2e31c5377df3dbd2454e) --- source3/registry/reg_api.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source3/registry/reg_api.c') diff --git a/source3/registry/reg_api.c b/source3/registry/reg_api.c index b7f79c1519..1d863ec93e 100644 --- a/source3/registry/reg_api.c +++ b/source3/registry/reg_api.c @@ -618,6 +618,30 @@ WERROR reg_deletevalue(struct registry_key *key, const char *name) return WERR_OK; } +WERROR reg_deleteallvalues(struct registry_key *key) +{ + WERROR err; + int i; + + if (!(key->key->access_granted & SEC_RIGHTS_SET_VALUE)) { + return WERR_ACCESS_DENIED; + } + + if (!W_ERROR_IS_OK(err = fill_value_cache(key))) { + return err; + } + + for (i=0; ivalues->num_values; i++) { + regval_ctr_delvalue(key->values, key->values->values[i]->valuename); + } + + if (!store_reg_values(key->key, key->values)) { + TALLOC_FREE(key->values); + return WERR_REG_IO_FAILURE; + } + + return WERR_OK; +} /* * Utility function to open a complete registry path including the hive -- cgit