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

obnox at samba.org obnox at samba.org
Fri Sep 14 16:12:38 GMT 2007


Author: obnox
Date: 2007-09-14 16:12:38 +0000 (Fri, 14 Sep 2007)
New Revision: 25162

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

Log:
Refactor further: add mapping functions between
REGISTRY_VALUE and struct registry_value formats for
registry values. Lacking better naming, I called them
regval_hilvl_to_lolvl and regval_lolvl_to_hilvl for a
start. The might be useful elsewhere, so might be put
into another place later on.

Michael


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


Changeset:
Modified: branches/SAMBA_3_2/source/registry/reg_smbconf.c
===================================================================
--- branches/SAMBA_3_2/source/registry/reg_smbconf.c	2007-09-14 15:08:07 UTC (rev 25161)
+++ branches/SAMBA_3_2/source/registry/reg_smbconf.c	2007-09-14 16:12:38 UTC (rev 25162)
@@ -40,6 +40,47 @@
 	return regdb_ops.fetch_values(key, val);
 }
 
+static WERROR regval_hilvl_to_lolvl(TALLOC_CTX *mem_ctx, const char *valname,
+				    struct registry_value *src,
+				    REGISTRY_VALUE **dst)
+{
+	WERROR err;
+	DATA_BLOB value_data;
+	REGISTRY_VALUE *newval = NULL;
+
+	if (dst == NULL) {
+		return WERR_INVALID_PARAM;
+	}
+
+	err = registry_push_value(mem_ctx, src, &value_data);
+	if (!W_ERROR_IS_OK(err)) {
+		DEBUG(10, ("error calling registry_push_value.\n"));
+		return err;
+	}
+
+	newval = regval_compose(mem_ctx, valname, src->type,
+				(char *)value_data.data, value_data.length);
+	if (newval == NULL) {
+		DEBUG(10, ("error composing registry value. (no memory?)\n"));
+		return WERR_NOMEM;
+	}
+
+	*dst = newval;
+	return WERR_OK;
+}
+
+static WERROR regval_lolvl_to_hilvl(TALLOC_CTX *mem_ctx, REGISTRY_VALUE *src,
+				    struct registry_value **dst)
+{
+	if (dst == NULL) {
+		return WERR_INVALID_PARAM;
+	}
+
+	return registry_pull_value(mem_ctx, dst, regval_type(src),
+				   regval_data_p(src), regval_size(src),
+				   regval_size(src));
+}
+
 /*
  * Utility function used by smbconf_store_values to canonicalize
  * a registry value.
@@ -55,7 +96,6 @@
 	BOOL inverse;
 	struct registry_value *value;
 	WERROR err;
-	DATA_BLOB value_data;
 	TALLOC_CTX *tmp_ctx;
 	REGISTRY_VALUE *newval = NULL;
 
@@ -71,9 +111,7 @@
 		goto done;
 	}
 
-	err = registry_pull_value(tmp_ctx, &value, regval_type(theval),
-				  regval_data_p(theval), regval_size(theval),
-				  regval_size(theval));
+	err = regval_lolvl_to_hilvl(tmp_ctx, theval, &value);
 	if (!W_ERROR_IS_OK(err)) {
 		goto done;
 	}
@@ -111,19 +149,12 @@
 	value->v.sz.str = CONST_DISCARD(char *, canon_valstr);
 	value->v.sz.len = strlen(canon_valstr) + 1;
 
-	err = registry_push_value(tmp_ctx, value, &value_data);
+	err = regval_hilvl_to_lolvl(mem_ctx, canon_valname, value, &newval);
 	if (!W_ERROR_IS_OK(err)) {
-		DEBUG(10, ("error calling registry_push_value.\n"));
+		DEBUG(10, ("error calling regval_hilvl_to_lolvl.\n"));
 		goto done;
 	}
 
-	newval = regval_compose(mem_ctx, canon_valname, value->type,
-				(char *)value_data.data, value_data.length);
-	if (newval == NULL) {
-		DEBUG(10, ("error composing registry value. (no memory?)\n"));
-		goto done;
-	}
-
 done:
 	TALLOC_FREE(tmp_ctx);
 	return newval;

Modified: branches/SAMBA_3_2_0/source/registry/reg_smbconf.c
===================================================================
--- branches/SAMBA_3_2_0/source/registry/reg_smbconf.c	2007-09-14 15:08:07 UTC (rev 25161)
+++ branches/SAMBA_3_2_0/source/registry/reg_smbconf.c	2007-09-14 16:12:38 UTC (rev 25162)
@@ -40,6 +40,47 @@
 	return regdb_ops.fetch_values(key, val);
 }
 
+static WERROR regval_hilvl_to_lolvl(TALLOC_CTX *mem_ctx, const char *valname,
+				    struct registry_value *src,
+				    REGISTRY_VALUE **dst)
+{
+	WERROR err;
+	DATA_BLOB value_data;
+	REGISTRY_VALUE *newval = NULL;
+
+	if (dst == NULL) {
+		return WERR_INVALID_PARAM;
+	}
+
+	err = registry_push_value(mem_ctx, src, &value_data);
+	if (!W_ERROR_IS_OK(err)) {
+		DEBUG(10, ("error calling registry_push_value.\n"));
+		return err;
+	}
+
+	newval = regval_compose(mem_ctx, valname, src->type,
+				(char *)value_data.data, value_data.length);
+	if (newval == NULL) {
+		DEBUG(10, ("error composing registry value. (no memory?)\n"));
+		return WERR_NOMEM;
+	}
+
+	*dst = newval;
+	return WERR_OK;
+}
+
+static WERROR regval_lolvl_to_hilvl(TALLOC_CTX *mem_ctx, REGISTRY_VALUE *src,
+				    struct registry_value **dst)
+{
+	if (dst == NULL) {
+		return WERR_INVALID_PARAM;
+	}
+
+	return registry_pull_value(mem_ctx, dst, regval_type(src),
+				   regval_data_p(src), regval_size(src),
+				   regval_size(src));
+}
+
 /*
  * Utility function used by smbconf_store_values to canonicalize
  * a registry value.
@@ -55,7 +96,6 @@
 	BOOL inverse;
 	struct registry_value *value;
 	WERROR err;
-	DATA_BLOB value_data;
 	TALLOC_CTX *tmp_ctx;
 	REGISTRY_VALUE *newval = NULL;
 
@@ -71,9 +111,7 @@
 		goto done;
 	}
 
-	err = registry_pull_value(tmp_ctx, &value, regval_type(theval),
-				  regval_data_p(theval), regval_size(theval),
-				  regval_size(theval));
+	err = regval_lolvl_to_hilvl(tmp_ctx, theval, &value);
 	if (!W_ERROR_IS_OK(err)) {
 		goto done;
 	}
@@ -111,19 +149,12 @@
 	value->v.sz.str = CONST_DISCARD(char *, canon_valstr);
 	value->v.sz.len = strlen(canon_valstr) + 1;
 
-	err = registry_push_value(tmp_ctx, value, &value_data);
+	err = regval_hilvl_to_lolvl(mem_ctx, canon_valname, value, &newval);
 	if (!W_ERROR_IS_OK(err)) {
-		DEBUG(10, ("error calling registry_push_value.\n"));
+		DEBUG(10, ("error calling regval_hilvl_to_lolvl.\n"));
 		goto done;
 	}
 
-	newval = regval_compose(mem_ctx, canon_valname, value->type,
-				(char *)value_data.data, value_data.length);
-	if (newval == NULL) {
-		DEBUG(10, ("error composing registry value. (no memory?)\n"));
-		goto done;
-	}
-
 done:
 	TALLOC_FREE(tmp_ctx);
 	return newval;



More information about the samba-cvs mailing list