[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Mon Aug 1 09:48:02 MDT 2011


The branch, master has been updated
       via  695af0f winsif.idl: fix comment about a pidl bug
       via  0ea3760 pidl:NDR/Parser: allow [string,size_of()] together
       via  eb9aa9b eventlog6.idl: fix definition of eventlog6_StringArray
      from  a833aaf s3:rpc_transport_tstream: call tstream_cli_np_use_trans() before tstream_writev_queue_send()

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 695af0f6ed7ed3d266f3bc1a45a8086b31ef287a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 15:38:12 2011 +0200

    winsif.idl: fix comment about a pidl bug
    
    metze
    
    Autobuild-User: Stefan Metzmacher <metze at samba.org>
    Autobuild-Date: Mon Aug  1 17:47:05 CEST 2011 on sn-devel-104

commit 0ea3760cae85226f6fbc59a9ca6b9eb9e2ab577b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 15:17:41 2011 +0200

    pidl:NDR/Parser: allow [string,size_of()] together
    
    metze

commit eb9aa9b9f41212849f605fb0cecef0b940e906d6
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 15:18:40 2011 +0200

    eventlog6.idl: fix definition of eventlog6_StringArray
    
    This is an array of string, not an array of characters.
    
    metze

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

Summary of changes:
 librpc/idl/eventlog6.idl                 |    2 +-
 pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm |   15 ++++++++++++---
 source4/librpc/idl/winsif.idl            |    3 +--
 3 files changed, 14 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/eventlog6.idl b/librpc/idl/eventlog6.idl
index 0cda95b..57216cd 100644
--- a/librpc/idl/eventlog6.idl
+++ b/librpc/idl/eventlog6.idl
@@ -64,7 +64,7 @@ interface eventlog6
 
 	typedef struct {
 		[range(0, MAX_RPC_STRING_ARRAY_COUNT)] uint32 count;
-		[size_is(count),charset(UTF16),string] uint16 *ptr;
+		[size_is(count),charset(UTF16),string] uint16 **ptr;
 	} eventlog6_StringArray;
 
 	typedef struct {
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
index 406fc02..3d31366 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
@@ -198,6 +198,12 @@ sub ParseArrayPushHeader($$$$$$)
 		} else {
 			$size = $length = "ndr_string_length($var_name, sizeof(*$var_name))";
 		}
+		if (defined($l->{SIZE_IS})) {
+			$size = ParseExpr($l->{SIZE_IS}, $env, $e);
+		}
+		if (defined($l->{LENGTH_IS})) {
+			$length = ParseExpr($l->{LENGTH_IS}, $env, $e);
+		}
 	} else {
 		$size = ParseExpr($l->{SIZE_IS}, $env, $e);
 		$length = ParseExpr($l->{LENGTH_IS}, $env, $e);
@@ -352,7 +358,7 @@ sub ParseArrayPullHeader($$$$$$)
 		$self->pidl("}");
 	}
 
-	if ($l->{IS_CONFORMANT} and not $l->{IS_ZERO_TERMINATED}) {
+	if ($l->{IS_CONFORMANT} and (defined($l->{SIZE_IS}) or not $l->{IS_ZERO_TERMINATED})) {
 		$self->defer("if ($var_name) {");
 		$self->defer_indent;
 		my $size = ParseExprExt($l->{SIZE_IS}, $env, $e->{ORIGINAL},
@@ -364,7 +370,7 @@ sub ParseArrayPullHeader($$$$$$)
 		$self->defer("}");
 	}
 
-	if ($l->{IS_VARYING} and not $l->{IS_ZERO_TERMINATED}) {
+	if ($l->{IS_VARYING} and (defined($l->{LENGTH_IS}) or not $l->{IS_ZERO_TERMINATED})) {
 		$self->defer("if ($var_name) {");
 		$self->defer_indent;
 		my $length = ParseExprExt($l->{LENGTH_IS}, $env, $e->{ORIGINAL}, 
@@ -775,7 +781,7 @@ sub ParseElementPrint($$$$$)
 				$var_name = get_pointer_to($var_name); 
 			}
 			
-			if ($l->{IS_ZERO_TERMINATED}) {
+			if ($l->{IS_ZERO_TERMINATED} and not defined($l->{LENGTH_IS})) {
 				$length = "ndr_string_length($var_name, sizeof(*$var_name))";
 			} else {
 				$length = ParseExprExt($l->{LENGTH_IS}, $env, $e->{ORIGINAL}, 
@@ -1273,6 +1279,9 @@ sub ParseStructPushPrimitives($$$$$)
 				} else {
 					$size = "ndr_string_length($varname->$e->{NAME}, sizeof(*$varname->$e->{NAME}))";
 				}
+				if (defined($e->{LEVELS}[0]->{SIZE_IS})) {
+					$size = ParseExpr($e->{LEVELS}[0]->{SIZE_IS}, $env, $e->{ORIGINAL});
+				}
 			} else {
 				$size = ParseExpr($e->{LEVELS}[0]->{SIZE_IS}, $env, $e->{ORIGINAL});
 			}
diff --git a/source4/librpc/idl/winsif.idl b/source4/librpc/idl/winsif.idl
index a9bf554..a678331 100644
--- a/source4/librpc/idl/winsif.idl
+++ b/source4/librpc/idl/winsif.idl
@@ -236,8 +236,7 @@ import "nbt.idl";
 		[out,ref] winsif_Address *server_address,
 		/*
 		 * TODO: fix pidl to handles this completly correct...
-		 *       currently it gives a warning about a missing pointer
-		 *       and completely ignores the size_is(80).
+		 *       currently it gives a warning about a missing pointer.
 		 */
 		[out,ref,string,charset(DOS),size_is(80)] uint8 *unc_name
 	);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list