summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-11-12 00:48:24 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:44 -0500
commit79c5d73a71c35f5b16232072a7b52033cb9364cb (patch)
tree62aec59516dd088a0b71b4f86119497b621acb16 /source4/rpc_server
parentc8b894b670a2e854c5a6af598ab1f02b142b3406 (diff)
downloadsamba-79c5d73a71c35f5b16232072a7b52033cb9364cb.tar.gz
samba-79c5d73a71c35f5b16232072a7b52033cb9364cb.tar.bz2
samba-79c5d73a71c35f5b16232072a7b52033cb9364cb.zip
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)
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/dcom/dcom.h54
-rw-r--r--source4/rpc_server/dcom/remact.c11
-rw-r--r--source4/rpc_server/dcom/rot.c13
3 files changed, 5 insertions, 73 deletions
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)
{