[SCM] Samba Shared Repository - branch v3-5-test updated - tevent-0-9-8-921-g3d98546

Günther Deschner gd at samba.org
Thu Oct 1 18:17:57 MDT 2009


The branch, v3-5-test has been updated
       via  3d98546ebf8c582cdd675e7e93693f54968fbc58 (commit)
       via  1febace29881995901eb5694f22ee333e7166fd7 (commit)
       via  4567a2ef52b0d04748337dc76315be277e72899a (commit)
      from  4a7016200731ea3e133665568027a3c99e1fcf71 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-test


- Log -----------------------------------------------------------------
commit 3d98546ebf8c582cdd675e7e93693f54968fbc58
Author: Günther Deschner <gd at samba.org>
Date:   Wed Sep 30 15:22:02 2009 +0200

    s3-printing: use regval_ctr_addvalue_multi_sz.
    
    Guenther
    (cherry picked from commit bbf394f36dbf2516ba92035791ebb67380de8d6e)

commit 1febace29881995901eb5694f22ee333e7166fd7
Author: Günther Deschner <gd at samba.org>
Date:   Wed Sep 30 15:21:37 2009 +0200

    s3-registry: add regval_ctr_addvalue_multi_sz.
    
    Guenther
    (cherry picked from commit 05e8e90976e86689425ccafc9ecfc1d99c53a3db)

commit 4567a2ef52b0d04748337dc76315be277e72899a
Author: Günther Deschner <gd at samba.org>
Date:   Wed Sep 30 01:23:13 2009 +0200

    s3-rpc_parse: remove unused prs_string.
    
    Guenther
    (cherry picked from commit afdea18fcf66ab9a03b542ea7f3d23d01a0a1931)

-----------------------------------------------------------------------

Summary of changes:
 source3/include/proto.h        |    2 +-
 source3/printing/nt_printing.c |   21 +++---------------
 source3/registry/reg_objects.c |   17 +++++++++++++++
 source3/rpc_parse/parse_prs.c  |   44 ----------------------------------------
 4 files changed, 22 insertions(+), 62 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/proto.h b/source3/include/proto.h
index e7ad877..c9f57b4 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5114,6 +5114,7 @@ struct regval_blob *regval_compose(TALLOC_CTX *ctx, const char *name,
 int regval_ctr_addvalue(struct regval_ctr *ctr, const char *name, uint16 type,
 			const char *data_p, size_t size);
 int regval_ctr_addvalue_sz(struct regval_ctr *ctr, const char *name, const char *data);
+int regval_ctr_addvalue_multi_sz(struct regval_ctr *ctr, const char *name, const char **data);
 int regval_ctr_copyvalue(struct regval_ctr *ctr, struct regval_blob *val);
 int regval_ctr_delvalue(struct regval_ctr *ctr, const char *name);
 struct regval_blob* regval_ctr_getvalue(struct regval_ctr *ctr,
@@ -5673,7 +5674,6 @@ bool prs_uint8s(bool charmode, const char *name, prs_struct *ps, int depth, uint
 bool prs_uint16s(bool charmode, const char *name, prs_struct *ps, int depth, uint16 *data16s, int len);
 bool prs_uint32s(bool charmode, const char *name, prs_struct *ps, int depth, uint32 *data32s, int len);
 bool prs_unistr(const char *name, prs_struct *ps, int depth, UNISTR *str);
-bool prs_string(const char *name, prs_struct *ps, int depth, char *str, int max_buf_size);
 bool prs_init_data_blob(prs_struct *prs, DATA_BLOB *blob, TALLOC_CTX *mem_ctx);
 bool prs_data_blob(prs_struct *prs, DATA_BLOB *blob, TALLOC_CTX *mem_ctx);
 
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index f033d8d..9995dfe 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -3057,26 +3057,13 @@ static void map_bool_into_ctr(struct regval_ctr *ctr, const char *val_name,
 static void map_single_multi_sz_into_ctr(struct regval_ctr *ctr, const char *val_name,
 					 const char *multi_sz)
 {
-	smb_ucs2_t *conv_strs = NULL;
-	size_t str_size;
-
-	/* a multi-sz has to have a null string terminator, i.e., the last
-	   string must be followed by two nulls */
-	str_size = strlen(multi_sz) + 2;
-	conv_strs = SMB_CALLOC_ARRAY(smb_ucs2_t, str_size);
-	if (!conv_strs) {
-		return;
-	}
+	const char *a[2];
 
-	/* Change to byte units. */
-	str_size *= sizeof(smb_ucs2_t);
-	push_ucs2(NULL, conv_strs, multi_sz, str_size,
-		  STR_TERMINATE | STR_NOALIGN);
+	a[0] = multi_sz;
+	a[1] = NULL;
 
 	regval_ctr_delvalue(ctr, val_name);
-	regval_ctr_addvalue(ctr, val_name, REG_MULTI_SZ,
-			    (char *) conv_strs, str_size);
-	SAFE_FREE(conv_strs);
+	regval_ctr_addvalue_multi_sz(ctr, val_name, a);
 }
 
 /****************************************************************************
diff --git a/source3/registry/reg_objects.c b/source3/registry/reg_objects.c
index 82086ca..b4b8ff2 100644
--- a/source3/registry/reg_objects.c
+++ b/source3/registry/reg_objects.c
@@ -507,6 +507,23 @@ int regval_ctr_addvalue_sz(struct regval_ctr *ctr, const char *name, const char
 }
 
 /***********************************************************************
+ Add a new registry MULTI_SZ value to the array
+ **********************************************************************/
+
+int regval_ctr_addvalue_multi_sz(struct regval_ctr *ctr, const char *name, const char **data)
+{
+	DATA_BLOB blob;
+
+	if (!push_reg_multi_sz(ctr, &blob, data)) {
+		return -1;
+	}
+
+	return regval_ctr_addvalue(ctr, name, REG_MULTI_SZ,
+				   (const char *)blob.data,
+				   blob.length);
+}
+
+/***********************************************************************
  Add a new registry value to the array
  **********************************************************************/
 
diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c
index edccded..aade037 100644
--- a/source3/rpc_parse/parse_prs.c
+++ b/source3/rpc_parse/parse_prs.c
@@ -1021,50 +1021,6 @@ bool prs_unistr(const char *name, prs_struct *ps, int depth, UNISTR *str)
 	return True;
 }
 
-
-/*******************************************************************
- Stream a null-terminated string.  len is strlen, and therefore does
- not include the null-termination character.
- ********************************************************************/
-
-bool prs_string(const char *name, prs_struct *ps, int depth, char *str, int max_buf_size)
-{
-	char *q;
-	int i;
-	int len;
-
-	if (UNMARSHALLING(ps))
-		len = strlen(&ps->data_p[ps->data_offset]);
-	else
-		len = strlen(str);
-
-	len = MIN(len, (max_buf_size-1));
-
-	q = prs_mem_get(ps, len+1);
-	if (q == NULL)
-		return False;
-
-	for(i = 0; i < len; i++) {
-		if (UNMARSHALLING(ps))
-			str[i] = q[i];
-		else
-			q[i] = str[i];
-	}
-
-	/* The terminating null. */
-	str[i] = '\0';
-
-	if (MARSHALLING(ps)) {
-		q[i] = '\0';
-	}
-
-	ps->data_offset += len+1;
-
-	dump_data(5+depth, (uint8 *)q, len);
-
-	return True;
-}
-
 /*******************************************************************
 creates a new prs_struct containing a DATA_BLOB
 ********************************************************************/


-- 
Samba Shared Repository


More information about the samba-cvs mailing list