From 79c5d73a71c35f5b16232072a7b52033cb9364cb Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 12 Nov 2004 00:48:24 +0000 Subject: r3689: Large number of COM updates: - Work on server side and local COM support (should work, just no example classes yet) - Use vtables so that local and remote calls can be used transparently - Generate 'proxies and stubs' rather then heavily modified code in client.pm and server.pm. proxies (client side code) are generated in proxy.pm, stubs (server side dispatchers) are generated in stubs.pm - Support registering classes and interfaces - DCOM interfaces no longer have to be in the same IDL file as their base interface, which will allow us to split up dcom.idl (This used to be commit 7466947a23985f9bb15209b67880f7b94dc515c8) --- source4/rpc_server/dcom/dcom.h | 54 ---------------------------------------- source4/rpc_server/dcom/remact.c | 11 ++++---- source4/rpc_server/dcom/rot.c | 13 ---------- 3 files changed, 5 insertions(+), 73 deletions(-) delete mode 100644 source4/rpc_server/dcom/dcom.h (limited to 'source4/rpc_server/dcom') diff --git a/source4/rpc_server/dcom/dcom.h b/source4/rpc_server/dcom/dcom.h deleted file mode 100644 index 2d4dc7d628..0000000000 --- a/source4/rpc_server/dcom/dcom.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - Unix SMB/CIFS implementation. - DCOM standard objects - Copyright (C) Jelmer Vernooij 2004. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef _DCOM_H /* _DCOM_H */ -#define _DCOM_H - -struct dcom_class -{ - const char *name; - const char *prog_id; - struct GUID CLSID; - - /* List of IID's implemented */ - uint32 num_iids; - struct GUID *IID; - - /* Pointers to functions this class implements */ - void **interfaces; -}; - -struct dcom_object -{ - struct dcom_class *class; - struct GUID oid; - HYPER_T OXID; - struct dcom_interface_pointer *interfaces; - void *private_data; -}; - -struct dcom_interface_pointer -{ - struct dcom_object *object; - struct dcerpc_interface_table *interface; - struct GUID ipid; -}; - -#endif /* _DCOM_H */ diff --git a/source4/rpc_server/dcom/remact.c b/source4/rpc_server/dcom/remact.c index 7a2b21a789..ce7c9c0c23 100644 --- a/source4/rpc_server/dcom/remact.c +++ b/source4/rpc_server/dcom/remact.c @@ -25,7 +25,6 @@ #include "rpc_server/common/common.h" #include "librpc/gen_ndr/ndr_remact.h" #include "librpc/gen_ndr/ndr_oxidresolver.h" -#include "rpc_server/dcom/dcom.h" struct dcom_interface_pointer *dcom_interface_pointer_by_ipid(struct GUID *ipid) { @@ -38,9 +37,9 @@ struct dcom_interface_pointer *dcom_interface_pointer_by_ipid(struct GUID *ipid) */ static WERROR RemoteActivation(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct RemoteActivation *r) { - struct IClassFactory_CreateInstance *cr; - struct IUnknown_Release *ur; - struct dcom_interface *o; + struct CreateInstance *cr; + struct Release *ur; + struct dcom_interface_p *o; int i; /* FIXME: CoGetClassObject() */ @@ -61,9 +60,9 @@ static WERROR RemoteActivation(struct dcesrv_call_state *dce_call, TALLOC_CTX *m r->out.hr = cr->out.result; for (i = 0; i < r->in.Interfaces; i++) { - struct IUnknown_QueryInterface rr; + struct QueryInterface rr; rr.in.iid = &r->in.pIIDs[i]; - dcerpc_IUnknown_QueryInterface(o, mem_ctx, &rr); + dcom_IUnknown_QueryInterface(o, mem_ctx, &rr); ZERO_STRUCT(r->out.ifaces[i]); r->out.results[i] = rr.out.result; } diff --git a/source4/rpc_server/dcom/rot.c b/source4/rpc_server/dcom/rot.c index eb19aa0501..d639bd9bf3 100644 --- a/source4/rpc_server/dcom/rot.c +++ b/source4/rpc_server/dcom/rot.c @@ -23,19 +23,6 @@ #include "includes.h" #include "rpc_server/dcerpc_server.h" #include "rpc_server/common/common.h" -#include "rpc_server/dcom/dcom.h" - -struct dcom_object *dcom_object_by_oid(struct GUID *oid) -{ - /* FIXME */ - return NULL; -} - -struct dcom_class *dcom_class_by_clsid(struct GUID *clsid) -{ - /* FIXME */ - return NULL; -} struct dcom_object *dcom_call_get_object(struct dcesrv_call_state *call) { -- cgit