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 <[email protected]>
Date:   Mon Aug 1 15:38:12 2011 +0200

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

commit 0ea3760cae85226f6fbc59a9ca6b9eb9e2ab577b
Author: Stefan Metzmacher <[email protected]>
Date:   Mon Aug 1 15:17:41 2011 +0200

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

commit eb9aa9b9f41212849f605fb0cecef0b940e906d6
Author: Stefan Metzmacher <[email protected]>
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

Reply via email to