From 8c2e179d477c99ab9c52e6b9af19a86d553d10b5 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 8 Nov 2004 02:12:15 +0000 Subject: r3611: DCOM client support works!! The torture test DCOM-SIMPLE now successfully does an IStream_Read and a IStream_Write call. This test can now be run successfully against the "Simple DCOM" Visual Studio example. (You have to quote out line 337 in pidl. pidl complains if the variable that contains the array size follows the array. I still need to fix this properly) Next goals: - Clean up code - Server side support - Support custom marshalling - Support DCOM interfaces in files other then dcom.idl (This used to be commit 8693344772a9b700533179f4bacfe27ec27dfcfe) --- source4/build/pidl/client.pm | 4 ++++ source4/build/pidl/header.pm | 1 + source4/build/pidl/idl.pm | 2 ++ source4/build/pidl/idl.yp | 2 ++ 4 files changed, 9 insertions(+) (limited to 'source4/build') diff --git a/source4/build/pidl/client.pm b/source4/build/pidl/client.pm index 9502c68e1a..1c0baa16f8 100644 --- a/source4/build/pidl/client.pm +++ b/source4/build/pidl/client.pm @@ -34,6 +34,10 @@ struct rpc_request *dcerpc_$name\_send(struct dcom_interface *d, TALLOC_CTX *mem return NULL; } + ZERO_STRUCT(r->in.ORPCthis); + r->in.ORPCthis.version.MajorVersion = 5; + r->in.ORPCthis.version.MinorVersion = 1; + "; } else { $objarg = "NULL"; diff --git a/source4/build/pidl/header.pm b/source4/build/pidl/header.pm index 0c4c5df425..cc9b804387 100644 --- a/source4/build/pidl/header.pm +++ b/source4/build/pidl/header.pm @@ -350,6 +350,7 @@ sub HeaderInterface($) $res .= "NTSTATUS dcerpc_server_$interface->{NAME}_init(void);\n\n"; } + $count = $interface->{INHERITED_FUNCTIONS}; foreach my $d (@{$data}) { if ($d->{TYPE} eq "FUNCTION") { my $u_name = uc $d->{NAME}; diff --git a/source4/build/pidl/idl.pm b/source4/build/pidl/idl.pm index 19525e42f3..a3e2e2ca8c 100644 --- a/source4/build/pidl/idl.pm +++ b/source4/build/pidl/idl.pm @@ -2080,8 +2080,10 @@ sub parse_idl($$) die("No such parent interface " . $x->{BASE}); } + $x->{INHERITED_FUNCTIONS} = scalar @{$parent->{INHERITED_DATA}}; @{$x->{INHERITED_DATA}} = (@{$parent->{INHERITED_DATA}}, @{$x->{DATA}}); } else { + $x->{INHERITED_FUNCTIONS} = 0; $x->{INHERITED_DATA} = $x->{DATA}; } } diff --git a/source4/build/pidl/idl.yp b/source4/build/pidl/idl.yp index 24f88dd531..e571645c4b 100644 --- a/source4/build/pidl/idl.yp +++ b/source4/build/pidl/idl.yp @@ -368,8 +368,10 @@ sub parse_idl($$) die("No such parent interface " . $x->{BASE}); } + $x->{INHERITED_FUNCTIONS} = scalar @{$parent->{INHERITED_DATA}}; @{$x->{INHERITED_DATA}} = (@{$parent->{INHERITED_DATA}}, @{$x->{DATA}}); } else { + $x->{INHERITED_FUNCTIONS} = 0; $x->{INHERITED_DATA} = $x->{DATA}; } } -- cgit