summaryrefslogtreecommitdiff
path: root/source4/build/pidl/parser.pm
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-12-02 00:31:54 +0000
committerAndrew Tridgell <tridge@samba.org>2003-12-02 00:31:54 +0000
commit06ae42483582ee76c3f6848697cf61cc142dd86a (patch)
tree959408cf7ba1e90e05a4e30278e71445ebc5cf32 /source4/build/pidl/parser.pm
parent8b30b0071cb7668f49b2ea5951d1180bf90371e3 (diff)
downloadsamba-06ae42483582ee76c3f6848697cf61cc142dd86a.tar.gz
samba-06ae42483582ee76c3f6848697cf61cc142dd86a.tar.bz2
samba-06ae42483582ee76c3f6848697cf61cc142dd86a.zip
* netr_ServerPasswordSet() now works - the test suite changes the
machine account password. * neater handling on value() options in IDL. The auto-print code will now display the right value so you don't need to initialise it in your C code (This used to be commit 3dd978b12bb5571fba4e1839c0f7ee60cf729aa2)
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 095c083514..1ba1a57cab 100644
--- a/source4/build/pidl/parser.pm
+++ b/source4/build/pidl/parser.pm
@@ -405,6 +405,12 @@ sub ParseElementPrintScalar($$)
return;
}
+ if (my $value = util::has_property($e, "value")) {
+ pidl "\tif (ndr->flags & LIBNDR_PRINT_SET_VALUES) {\n";
+ pidl "\t\t$cprefix$var_prefix$e->{NAME} = $value;\n";
+ pidl "\t}\n";
+ }
+
if (util::is_fixed_array($e)) {
ParseElementPrintBuffer($e, $var_prefix);
} elsif (util::has_direct_buffers($e)) {
@@ -1100,7 +1106,11 @@ sub ParseFunctionPrint($)
pidl "\n{\n";
pidl "\tndr_print_struct(ndr, name, \"$fn->{NAME}\");\n";
pidl "\tndr->depth++;\n";
-
+
+ pidl "\tif (flags & NDR_SET_VALUES) {\n";
+ pidl "\t\tndr->flags |= LIBNDR_PRINT_SET_VALUES;\n";
+ pidl "}\n";
+
pidl "\tif (flags & NDR_IN) {\n";
pidl "\t\tndr_print_struct(ndr, \"in\", \"$fn->{NAME}\");\n";
pidl "\tndr->depth++;\n";