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

obnox at samba.org obnox at samba.org
Fri Sep 7 14:41:51 GMT 2007


Author: obnox
Date: 2007-09-07 14:41:49 +0000 (Fri, 07 Sep 2007)
New Revision: 24998

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

Log:
Add a function regval_compose() to compose a REGISTRY_VALUE from
input data. Use this function in a first step to refactor
the canonicalization code of smbconf_store_values().

Michael


Modified:
   branches/SAMBA_3_2/source/registry/reg_objects.c
   branches/SAMBA_3_2/source/registry/reg_smbconf.c
   branches/SAMBA_3_2_0/source/registry/reg_objects.c
   branches/SAMBA_3_2_0/source/registry/reg_smbconf.c


Changeset:
Modified: branches/SAMBA_3_2/source/registry/reg_objects.c
===================================================================
--- branches/SAMBA_3_2/source/registry/reg_objects.c	2007-09-07 14:25:03 UTC (rev 24997)
+++ branches/SAMBA_3_2/source/registry/reg_objects.c	2007-09-07 14:41:49 UTC (rev 24998)
@@ -270,7 +270,37 @@
 	
 	return False;
 }
+
 /***********************************************************************
+ * compose a REGISTRY_VALUE from input data
+ **********************************************************************/
+
+REGISTRY_VALUE *regval_compose(TALLOC_CTX *ctx, const char *name, uint16 type,
+			       const char *data_p, size_t size)
+{
+	REGISTRY_VALUE *regval = TALLOC_P(ctx, REGISTRY_VALUE);
+
+	if (regval == NULL) {
+		return NULL;
+	}
+
+	fstrcpy(regval->valuename, name);
+	regval->type = type;
+	if (size) {
+		regval->data_p = (uint8 *)TALLOC_MEMDUP(regval, data_p, size);
+		if (!regval->data_p) {
+			TALLOC_FREE(regval);
+			return NULL;
+		}
+	} else {
+		regval->data_p = NULL;
+	}
+	regval->size = size;
+
+	return regval;
+}
+
+/***********************************************************************
  Add a new registry value to the array
  **********************************************************************/
 

Modified: branches/SAMBA_3_2/source/registry/reg_smbconf.c
===================================================================
--- branches/SAMBA_3_2/source/registry/reg_smbconf.c	2007-09-07 14:25:03 UTC (rev 24997)
+++ branches/SAMBA_3_2/source/registry/reg_smbconf.c	2007-09-07 14:41:49 UTC (rev 24998)
@@ -167,10 +167,18 @@
 
 			DEBUG(10, ("adding canonicalized parameter to "
 				   "container.\n"));
-			res = regval_ctr_addvalue(new_val_ctr, canon_valname,
-						  value->type,
-						  (char *)value_data.data,
-						  value_data.length);
+
+			theval = regval_compose(mem_ctx, canon_valname,
+						value->type,
+						(char *)value_data.data,
+						value_data.length);
+			if (theval == NULL) {
+				DEBUG(10, ("error composing registry value. "
+					   "(no memory?)\n"));
+				TALLOC_FREE(mem_ctx);
+				return False;
+			}
+			res = regval_ctr_copyvalue(new_val_ctr, theval);
 			if (res == 0) {
 				DEBUG(10, ("error calling regval_ctr_addvalue. "
 				      "(no memory?)\n"));

Modified: branches/SAMBA_3_2_0/source/registry/reg_objects.c
===================================================================
--- branches/SAMBA_3_2_0/source/registry/reg_objects.c	2007-09-07 14:25:03 UTC (rev 24997)
+++ branches/SAMBA_3_2_0/source/registry/reg_objects.c	2007-09-07 14:41:49 UTC (rev 24998)
@@ -270,7 +270,37 @@
 	
 	return False;
 }
+
 /***********************************************************************
+ * compose a REGISTRY_VALUE from input data
+ **********************************************************************/
+
+REGISTRY_VALUE *regval_compose(TALLOC_CTX *ctx, const char *name, uint16 type,
+			       const char *data_p, size_t size)
+{
+	REGISTRY_VALUE *regval = TALLOC_P(ctx, REGISTRY_VALUE);
+
+	if (regval == NULL) {
+		return NULL;
+	}
+
+	fstrcpy(regval->valuename, name);
+	regval->type = type;
+	if (size) {
+		regval->data_p = (uint8 *)TALLOC_MEMDUP(regval, data_p, size);
+		if (!regval->data_p) {
+			TALLOC_FREE(regval);
+			return NULL;
+		}
+	} else {
+		regval->data_p = NULL;
+	}
+	regval->size = size;
+
+	return regval;
+}
+
+/***********************************************************************
  Add a new registry value to the array
  **********************************************************************/
 

Modified: branches/SAMBA_3_2_0/source/registry/reg_smbconf.c
===================================================================
--- branches/SAMBA_3_2_0/source/registry/reg_smbconf.c	2007-09-07 14:25:03 UTC (rev 24997)
+++ branches/SAMBA_3_2_0/source/registry/reg_smbconf.c	2007-09-07 14:41:49 UTC (rev 24998)
@@ -167,10 +167,18 @@
 
 			DEBUG(10, ("adding canonicalized parameter to "
 				   "container.\n"));
-			res = regval_ctr_addvalue(new_val_ctr, canon_valname,
-						  value->type,
-						  (char *)value_data.data,
-						  value_data.length);
+
+			theval = regval_compose(mem_ctx, canon_valname,
+						value->type,
+						(char *)value_data.data,
+						value_data.length);
+			if (theval == NULL) {
+				DEBUG(10, ("error composing registry value. "
+					   "(no memory?)\n"));
+				TALLOC_FREE(mem_ctx);
+				return False;
+			}
+			res = regval_ctr_copyvalue(new_val_ctr, theval);
 			if (res == 0) {
 				DEBUG(10, ("error calling regval_ctr_addvalue. "
 				      "(no memory?)\n"));



More information about the samba-cvs mailing list