summaryrefslogtreecommitdiff
path: root/source4/build/pidl/parser.pm
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-12-01 03:19:43 +0000
committerAndrew Tridgell <tridge@samba.org>2003-12-01 03:19:43 +0000
commit5b46116923fb7c2945db128736b7f8113ea1a160 (patch)
tree7a5fec775d4f7d9fe5e20bcd5a4d13e5104be620 /source4/build/pidl/parser.pm
parentb0531a38cc7135538d251440ac4fc2c887d9f335 (diff)
downloadsamba-5b46116923fb7c2945db128736b7f8113ea1a160.tar.gz
samba-5b46116923fb7c2945db128736b7f8113ea1a160.tar.bz2
samba-5b46116923fb7c2945db128736b7f8113ea1a160.zip
added netr_ServerReqChallenge and cleaned up byte array printing
(This used to be commit bb42107dccf3a384a4a5c029b4d2752e0898d7cb)
Diffstat (limited to 'source4/build/pidl/parser.pm')
-rw-r--r--source4/build/pidl/parser.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm
index 5bf5e4220f..579c577d3c 100644
--- a/source4/build/pidl/parser.pm
+++ b/source4/build/pidl/parser.pm
@@ -405,7 +405,9 @@ sub ParseElementPrintScalar($$)
return;
}
- if (util::has_direct_buffers($e)) {
+ if (util::is_fixed_array($e)) {
+ ParseElementPrintBuffer($e, $var_prefix);
+ } elsif (util::has_direct_buffers($e)) {
pidl "\tndr_print_ptr(ndr, \"$e->{NAME}\", $var_prefix$e->{NAME});\n";
pidl "\tndr->depth++;\n";
ParseElementPrintBuffer($e, $var_prefix);
@@ -740,11 +742,15 @@ sub ParseStructPrint($)
return;
}
+ start_flags($struct);
+
pidl "\tndr->depth++;\n";
foreach my $e (@{$struct->{ELEMENTS}}) {
ParseElementPrintScalar($e, "r->");
}
pidl "\tndr->depth--;\n";
+
+ end_flags($struct);
}
#####################################################################
@@ -874,6 +880,8 @@ sub ParseUnionPrint($)
my $e = shift;
my $have_default = 0;
+ start_flags($e);
+
pidl "\tswitch (level) {\n";
foreach my $el (@{$e->{DATA}}) {
if ($el->{CASE} eq "default") {
@@ -891,6 +899,8 @@ sub ParseUnionPrint($)
pidl "\tdefault:\n\t\tndr_print_bad_level(ndr, name, level);\n";
}
pidl "\t}\n";
+
+ end_flags($e);
}
#####################################################################