[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-779-g9620b86

Stefan Metzmacher metze at samba.org
Tue Feb 12 15:19:04 GMT 2008


The branch, v4-0-test has been updated
       via  9620b86e96e8065c0ff6db0d95130ab53581d468 (commit)
       via  746a715715c7af8036192ba6d74e282ceaec8c0d (commit)
       via  bb143c76fb971bc2a1d69954d37ab20a953f2b69 (commit)
      from  1a53aeff9a9e8fe83fde5a617463a5b363c45313 (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 9620b86e96e8065c0ff6db0d95130ab53581d468
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Feb 12 16:16:35 2008 +0100

    librpc: remove special support for fixed length strings
    
    Fixed arrays with the charset() attribute do the same
    
    metze

commit 746a715715c7af8036192ba6d74e282ceaec8c0d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Feb 12 16:15:34 2008 +0100

    spoolss.idl: don't use string32 anymore and use an charset() array
    
    metze

commit bb143c76fb971bc2a1d69954d37ab20a953f2b69
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Feb 12 16:14:43 2008 +0100

    nbt.idl: don't use astring15 anymore and use an charset() array
    
    metze

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

Summary of changes:
 source/librpc/idl/idl_types.h  |   12 ----------
 source/librpc/idl/nbt.idl      |    2 +-
 source/librpc/idl/spoolss.idl  |    4 +-
 source/librpc/ndr/libndr.h     |    2 -
 source/librpc/ndr/ndr_string.c |   45 +---------------------------------------
 5 files changed, 4 insertions(+), 61 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/librpc/idl/idl_types.h b/source/librpc/idl/idl_types.h
index f21f3e6..01524c2 100644
--- a/source/librpc/idl/idl_types.h
+++ b/source/librpc/idl/idl_types.h
@@ -5,8 +5,6 @@
 #define STR_NOTERM	LIBNDR_FLAG_STR_NOTERM
 #define STR_NULLTERM	LIBNDR_FLAG_STR_NULLTERM
 #define STR_BYTESIZE	LIBNDR_FLAG_STR_BYTESIZE
-#define STR_FIXLEN32	LIBNDR_FLAG_STR_FIXLEN32
-#define STR_FIXLEN15	LIBNDR_FLAG_STR_FIXLEN15
 #define STR_CONFORMANT  LIBNDR_FLAG_STR_CONFORMANT
 #define STR_CHARLEN	LIBNDR_FLAG_STR_CHARLEN
 #define STR_UTF8	LIBNDR_FLAG_STR_UTF8
@@ -22,16 +20,6 @@
 #define nstring		[flag(STR_NULLTERM)] string
 
 /*
-  fixed length 32 character UCS-2 string
-*/
-#define string32	[flag(STR_FIXLEN32)] string
-
-/*
-  fixed length 16 character ascii string
-*/
-#define astring15       [flag(STR_ASCII|STR_FIXLEN15)] string
-
-/*
   an ascii string prefixed with [offset] [length], both 32 bits
   null terminated
 */
diff --git a/source/librpc/idl/nbt.idl b/source/librpc/idl/nbt.idl
index d4c2bf1..17304bf 100644
--- a/source/librpc/idl/nbt.idl
+++ b/source/librpc/idl/nbt.idl
@@ -143,7 +143,7 @@ interface nbt
 	} nbt_statistics;
 
 	typedef struct {
-		astring15 name;
+		[charset(DOS)] uint8 name[15];
 		nbt_name_type type;
 		nb_flags  nb_flags;
 	} nbt_status_name;
diff --git a/source/librpc/idl/spoolss.idl b/source/librpc/idl/spoolss.idl
index 114c06a..33b4dba 100644
--- a/source/librpc/idl/spoolss.idl
+++ b/source/librpc/idl/spoolss.idl
@@ -58,7 +58,7 @@ import "security.idl", "winreg.idl";
 	} spoolss_PrinterInfo0;
 
 	typedef [public,gensize] struct {
-	        string32 devicename;
+		[charset(UTF16)] uint16 devicename[32];
 		uint16 specversion;
 		uint16 driverversion;
 		uint16 size;
@@ -77,7 +77,7 @@ import "security.idl", "winreg.idl";
 		uint16 yresolution;
 		uint16 ttoption;
 		uint16 collate;
-	        string32 formname;
+		[charset(UTF16)] uint16 formname[32];
 		uint16 logpixels;
 		uint32 bitsperpel;
 		uint32 pelswidth;
diff --git a/source/librpc/ndr/libndr.h b/source/librpc/ndr/libndr.h
index 1ecc6f3..731ef0f 100644
--- a/source/librpc/ndr/libndr.h
+++ b/source/librpc/ndr/libndr.h
@@ -109,11 +109,9 @@ struct ndr_print {
 #define LIBNDR_FLAG_STR_NULLTERM	(1<<6)
 #define LIBNDR_FLAG_STR_SIZE2		(1<<7)
 #define LIBNDR_FLAG_STR_BYTESIZE	(1<<8)
-#define LIBNDR_FLAG_STR_FIXLEN32	(1<<9)
 #define LIBNDR_FLAG_STR_CONFORMANT	(1<<10)
 #define LIBNDR_FLAG_STR_CHARLEN		(1<<11)
 #define LIBNDR_FLAG_STR_UTF8		(1<<12)
-#define LIBNDR_FLAG_STR_FIXLEN15	(1<<13)
 #define LIBNDR_STRING_FLAGS		(0x7FFC)
 
 
diff --git a/source/librpc/ndr/ndr_string.c b/source/librpc/ndr/ndr_string.c
index 69a7eca..79548f8 100644
--- a/source/librpc/ndr/ndr_string.c
+++ b/source/librpc/ndr/ndr_string.c
@@ -259,24 +259,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
 		*s = as;
 		break;
 
-	case LIBNDR_FLAG_STR_FIXLEN15:
-	case LIBNDR_FLAG_STR_FIXLEN32:
-		len1 = (flags & LIBNDR_FLAG_STR_FIXLEN32)?32:15;
-		NDR_PULL_NEED_BYTES(ndr, len1*byte_mul);
-		ret = convert_string_talloc(ndr->current_mem_ctx,
-					    ndr->iconv_convenience,
-					    chset, CH_UNIX, 
-					    ndr->data+ndr->offset, 
-					    len1*byte_mul,
-					    (void **)&as);
-		if (ret == -1) {
-			return ndr_pull_error(ndr, NDR_ERR_CHARCNV, 
-					      "Bad character conversion");
-		}
-		NDR_CHECK(ndr_pull_advance(ndr, len1*byte_mul));
-		*s = as;
-		break;
-
 	case LIBNDR_FLAG_STR_NOTERM:
 		if (!(ndr->flags & LIBNDR_FLAG_REMAINING)) {
 			return ndr_pull_error(ndr, NDR_ERR_STRING, "Bad string flags 0x%x (missing NDR_REMAINING)\n",
@@ -349,10 +331,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags,
 
 	flags &= ~LIBNDR_FLAG_STR_CONFORMANT;
 
-	if (!(flags & 
-	      (LIBNDR_FLAG_STR_NOTERM |
-	       LIBNDR_FLAG_STR_FIXLEN15 |
-	       LIBNDR_FLAG_STR_FIXLEN32))) {
+	if (!(flags & LIBNDR_FLAG_STR_NOTERM)) {
 		s_len++;
 	}
 	d_len = convert_string_talloc(ndr, ndr->iconv_convenience, CH_UNIX, chset, s, s_len, (void **)&dest);
@@ -399,21 +378,6 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags,
 		NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
 		break;
 
-	case LIBNDR_FLAG_STR_FIXLEN15:
-	case LIBNDR_FLAG_STR_FIXLEN32: {
-		ssize_t fix_len = (flags & LIBNDR_FLAG_STR_FIXLEN32)?32:15;
-		uint32_t pad_len = fix_len - d_len;
-		if (d_len > fix_len) {
-			return ndr_push_error(ndr, NDR_ERR_CHARCNV, 
-					      "Bad character conversion");
-		}
-		NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
-		if (pad_len != 0) {
-			NDR_CHECK(ndr_push_zero(ndr, pad_len));
-		}
-		break;
-	}
-
 	default:
 		if (ndr->flags & LIBNDR_FLAG_REMAINING) {
 			NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
@@ -439,13 +403,6 @@ _PUBLIC_ size_t ndr_string_array_size(struct ndr_push *ndr, const char *s)
 	unsigned byte_mul = 2;
 	unsigned c_len_term = 1;
 
-	if (flags & LIBNDR_FLAG_STR_FIXLEN32) {
-		return 32;
-	}
-	if (flags & LIBNDR_FLAG_STR_FIXLEN15) {
-		return 15;
-	}
-	
 	c_len = s?strlen_m(s):0;
 
 	if (flags & (LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_UTF8)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list