summaryrefslogtreecommitdiff
path: root/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2010-09-21 01:44:38 +0200
committerStefan Metzmacher <metze@samba.org>2011-03-10 14:31:19 +0100
commitd79fb9098bc3ce37daa8ab6d51dc62ad0bc2ad26 (patch)
tree750342a79c398407fa1ea924aaad2c734be29c10 /pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
parentf43e757096750dc2844af49363981fd0246d9f48 (diff)
downloadsamba-d79fb9098bc3ce37daa8ab6d51dc62ad0bc2ad26.tar.gz
samba-d79fb9098bc3ce37daa8ab6d51dc62ad0bc2ad26.tar.bz2
samba-d79fb9098bc3ce37daa8ab6d51dc62ad0bc2ad26.zip
pidl: add support for 'pipe' at the NDR layer
metze
Diffstat (limited to 'pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm')
-rw-r--r--pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm14
1 files changed, 10 insertions, 4 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
index 8f43702ad5..ab4f524b9f 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
@@ -101,10 +101,11 @@ sub ParseFunction_r_Send($$$$)
$self->pidl("");
my $out_params = 0;
- foreach (@{$fn->{ELEMENTS}}) {
- if (grep(/out/, @{$_->{DIRECTION}})) {
- $out_params++;
- }
+ foreach my $e (@{$fn->{ELEMENTS}}) {
+ next unless grep(/out/, @{$e->{DIRECTION}});
+ next if ContainsPipe($e, $e->{LEVELS}[0]);
+ $out_params++;
+
}
my $submem;
@@ -490,6 +491,9 @@ sub ParseFunction_Send($$$$)
next unless grep(/out/, @{$e->{DIRECTION}});
$self->ParseCopyArgument($fn, $e, "state->orig.out.", "_");
+
+ next if ContainsPipe($e, $e->{LEVELS}[0]);
+
$out_params++;
}
$self->pidl("");
@@ -569,6 +573,7 @@ sub ParseFunction_Done($$$$)
$self->pidl("/* Copy out parameters */");
foreach my $e (@{$fn->{ELEMENTS}}) {
+ next if ContainsPipe($e, $e->{LEVELS}[0]);
next unless (grep(/out/, @{$e->{DIRECTION}}));
$self->ParseOutputArgument($fn, $e,
@@ -698,6 +703,7 @@ sub ParseFunction_Sync($$$$)
$self->pidl("/* Return variables */");
foreach my $e (@{$fn->{ELEMENTS}}) {
+ next if ContainsPipe($e, $e->{LEVELS}[0]);
next unless (grep(/out/, @{$e->{DIRECTION}}));
$self->ParseOutputArgument($fn, $e, "r.", "_", "sync");