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