svn commit: samba r24418 - in branches: SAMBA_3_2/source/registry SAMBA_3_2_0/source/registry

gd at samba.org gd at samba.org
Tue Aug 14 15:29:43 GMT 2007


Author: gd
Date: 2007-08-14 15:29:42 +0000 (Tue, 14 Aug 2007)
New Revision: 24418

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24418

Log:
Adding reg_deleteallvalues().

Guenther

Modified:
   branches/SAMBA_3_2/source/registry/reg_api.c
   branches/SAMBA_3_2_0/source/registry/reg_api.c


Changeset:
Modified: branches/SAMBA_3_2/source/registry/reg_api.c
===================================================================
--- branches/SAMBA_3_2/source/registry/reg_api.c	2007-08-14 15:26:54 UTC (rev 24417)
+++ branches/SAMBA_3_2/source/registry/reg_api.c	2007-08-14 15:29:42 UTC (rev 24418)
@@ -618,7 +618,31 @@
 	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; i<key->values->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
  * prefix. This should become the replacement function for

Modified: branches/SAMBA_3_2_0/source/registry/reg_api.c
===================================================================
--- branches/SAMBA_3_2_0/source/registry/reg_api.c	2007-08-14 15:26:54 UTC (rev 24417)
+++ branches/SAMBA_3_2_0/source/registry/reg_api.c	2007-08-14 15:29:42 UTC (rev 24418)
@@ -618,7 +618,31 @@
 	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; i<key->values->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
  * prefix. This should become the replacement function for



More information about the samba-cvs mailing list