diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-11-03 20:32:28 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:23 -0500 |
commit | 6d3c74a67b935f348777feb3fac7653a9c4277a8 (patch) | |
tree | bf051f28dabe9bd91ea5d39f3b7ba38bdb77cc88 /source4/build/pidl/parser.pm | |
parent | e0e6e0f99d9c7645e1809a3bde1a6ab01843de67 (diff) | |
download | samba-6d3c74a67b935f348777feb3fac7653a9c4277a8.tar.gz samba-6d3c74a67b935f348777feb3fac7653a9c4277a8.tar.bz2 samba-6d3c74a67b935f348777feb3fac7653a9c4277a8.zip |
r3513: Add (the infrastructure for) DCOM support. Contents:
- Support for sending over the object UUID in DCERPC calls
- Simple torture test for the DCOM "Simple" object
- Generate extra argument for "object" interfaces in pidl
- Some stubs for common DCOM functions
(This used to be commit c052f2e1edd816206d8974af3140cec7ef97a70c)
Diffstat (limited to 'source4/build/pidl/parser.pm')
-rw-r--r-- | source4/build/pidl/parser.pm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm index 34f9df197f..39ec8a89a0 100644 --- a/source4/build/pidl/parser.pm +++ b/source4/build/pidl/parser.pm @@ -162,7 +162,10 @@ sub struct_alignment for my $e (@{$s->{ELEMENTS}}) { my $a = 1; - if (!util::need_wire_pointer($e) + if (util::has_property($e, "align")) + { + $a = $e->{PROPERTIES}->{align}; + } elsif (!util::need_wire_pointer($e) && defined $structs{$e->{TYPE}}) { if ($structs{$e->{TYPE}}->{DATA}->{TYPE} eq "STRUCT") { $a = struct_alignment($structs{$e->{TYPE}}->{DATA}); @@ -1315,6 +1318,11 @@ sub ParseFunctionPush($) pidl $static . "NTSTATUS ndr_push_$fn->{NAME}(struct ndr_push *ndr, int flags, struct $fn->{NAME} *r)\n{\n"; pidl "\n\tif (!(flags & NDR_IN)) goto ndr_out;\n\n"; + + if (util::has_property($fn, "object")) { + # FIXME: Set COM version and possibly causality ID + } + foreach my $e (@{$fn->{DATA}}) { if (util::has_property($e, "in")) { ParseFunctionElementPush($e, "in"); @@ -1323,6 +1331,7 @@ sub ParseFunctionPush($) pidl "\nndr_out:\n"; pidl "\tif (!(flags & NDR_OUT)) goto done;\n\n"; + foreach my $e (@{$fn->{DATA}}) { if (util::has_property($e, "out")) { ParseFunctionElementPush($e, "out"); @@ -1449,6 +1458,7 @@ sub ParseFunctionPull($) pidl "\nndr_out:\n"; pidl "\tif (!(flags & NDR_OUT)) goto done;\n\n"; + foreach my $e (@{$fn->{DATA}}) { if (util::has_property($e, "out")) { ParseFunctionElementPull($e, "out"); |