summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2006-05-25 19:34:05 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:08:37 -0500
commitaecb20a2646520d04e09fe37ea10cd5cc0a93f7b (patch)
tree01679a2dfaf8900a8b0cf0c54fbc83bf9044f718 /source4/rpc_server
parent64fe1e92a5477ff24878985854d7dbb768382c7d (diff)
downloadsamba-aecb20a2646520d04e09fe37ea10cd5cc0a93f7b.tar.gz
samba-aecb20a2646520d04e09fe37ea10cd5cc0a93f7b.tar.bz2
samba-aecb20a2646520d04e09fe37ea10cd5cc0a93f7b.zip
r15892: Remove the COM management code - DCOM should be
based on Mono and its' COM support and utilize Samba's DCE/RPC + ORPC code instead of having our own COM implementation in Samba, which is too much work to implement and harder to code (C). This only removes some of the code that I started working on to implement the bits of COM I thought were needed to support DCOM from just Samba. This code has never functioned properly, contains a couple of nasty hacks and there should be no reason to pick it up again later, the processes are all documented in the DCOM whitepaper. This does NOT remove the marshalling code for the ORPC code or the torture code that tested some of the ORPC code. (This used to be commit 11df14219bf0b35329b293cae3234e064aabde54)
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/config.mk18
-rw-r--r--source4/rpc_server/dcom/oxidresolver.c118
-rw-r--r--source4/rpc_server/dcom/remact.c95
-rw-r--r--source4/rpc_server/dcom/rodb.c40
-rw-r--r--source4/rpc_server/dcom/rot.c113
5 files changed, 0 insertions, 384 deletions
diff --git a/source4/rpc_server/config.mk b/source4/rpc_server/config.mk
index 473b0a3df7..afe18217c1 100644
--- a/source4/rpc_server/config.mk
+++ b/source4/rpc_server/config.mk
@@ -13,24 +13,6 @@ OBJ_FILES = \
################################################
################################################
-# Start MODULE dcerpc_dcom
-[MODULE::dcerpc_dcom]
-ENABLE = NO
-INIT_FUNCTION = dcerpc_server_dcom_init
-SUBSYSTEM = dcerpc_server
-OBJ_FILES = \
- dcom/oxidresolver.o \
- dcom/rot.o \
- dcom/rodb.o \
- dcom/remact.o \
- librpc/gen_ndr/ndr_dcom_d.o
-PUBLIC_DEPENDENCIES = \
- DCERPC_COMMON \
- dcom
-# End MODULE dcerpc_dcom
-################################################
-
-################################################
# Start MODULE dcerpc_rpcecho
[MODULE::dcerpc_rpcecho]
INIT_FUNCTION = dcerpc_server_rpcecho_init
diff --git a/source4/rpc_server/dcom/oxidresolver.c b/source4/rpc_server/dcom/oxidresolver.c
deleted file mode 100644
index 1880d6f8dc..0000000000
--- a/source4/rpc_server/dcom/oxidresolver.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- endpoint server for the IOXIDResolver pipe
-
- 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.
-*/
-
-#include "includes.h"
-#include "librpc/gen_ndr/ndr_oxidresolver.h"
-#include "rpc_server/dcerpc_server.h"
-
-struct OXIDObject
-{
- struct GUID OID;
-};
-
-struct PingSet
-{
- uint64_t id;
- struct OXIDObject *objects;
- struct PingSet *prev, *next;
-};
-
-/* Maximum number of missed ping calls before a client is presumed
- * gone */
-#define MAX_MISSED_PINGS 3
-
-/* Maximum number of seconds between two ping calls */
-#define MAX_PING_TIME 60
-
-/*
- ResolveOxid
-*/
-static WERROR ResolveOxid(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ResolveOxid *r)
-{
- return WERR_NOT_SUPPORTED;
-}
-
-
-/*
- SimplePing
-*/
-static WERROR SimplePing(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct SimplePing *r)
-{
- return WERR_NOT_SUPPORTED;
-}
-
-/*
- ComplexPing
-*/
-static WERROR ComplexPing(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ComplexPing *r)
-{
- /* struct PingSet *ps; */
-
- /* If r->in.SetId == 0, create new PingSet */
-
- /* Otherwise, look up pingset by id */
-
- return WERR_NOT_SUPPORTED;
-}
-
-
-/*
- ServerAlive
-*/
-static WERROR ServerAlive(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ServerAlive *r)
-{
- return WERR_OK;
-}
-
-
-/*
- ResolveOxid2
-*/
-static WERROR ResolveOxid2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ResolveOxid2 *r)
-{
- ZERO_STRUCT(r->out);
- r->out.ComVersion.MajorVersion = COM_MAJOR_VERSION;
- r->out.ComVersion.MinorVersion = COM_MINOR_VERSION;
- return WERR_NOT_SUPPORTED;
-}
-
-struct DUALSTRINGARRAY *dcom_server_generate_dual_string(TALLOC_CTX *mem_ctx, struct dcesrv_call_state *state)
-{
- return NULL; /* FIXME */
-}
-
-/*
- ServerAlive2
-*/
-static WERROR ServerAlive2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ServerAlive2 *r)
-{
- ZERO_STRUCT(r->out);
- r->out.info.version.MajorVersion = COM_MAJOR_VERSION;
- r->out.info.version.MinorVersion = COM_MINOR_VERSION;
- r->out.dualstring = *dcom_server_generate_dual_string(mem_ctx, dce_call);
- return WERR_OK;
-}
-
-/* FIXME: Garbage collect objects that haven't been pinged */
-
-/* include the generated boilerplate */
-#include "librpc/gen_ndr/ndr_oxidresolver_s.c"
diff --git a/source4/rpc_server/dcom/remact.c b/source4/rpc_server/dcom/remact.c
deleted file mode 100644
index 506417d7e4..0000000000
--- a/source4/rpc_server/dcom/remact.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- endpoint server for the IRemoteActivation pipe
-
- 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.
-*/
-
-#include "includes.h"
-#include "rpc_server/dcerpc_server.h"
-#include "rpc_server/common/common.h"
-#include "librpc/gen_ndr/ndr_remact.h"
-#include "librpc/gen_ndr/ndr_oxidresolver.h"
-
-struct dcom_interface_pointer *dcom_interface_pointer_by_ipid(struct GUID *ipid)
-{
- /* FIXME */
- return NULL;
-}
-
-/*
- RemoteActivation
-*/
-static WERROR RemoteActivation(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct RemoteActivation *r)
-{
- struct CreateInstance *cr = NULL;
- /*struct Release *ur;*/
- struct dcom_interface_p *o = NULL;
- int i;
-
- /* FIXME: CoGetClassObject() */
- /* FIXME: IClassFactory::CreateInstance() */
- /* FIXME: IUnknown::Release() */
-
- ZERO_STRUCT(r->out);
- r->out.ServerVersion.MajorVersion = COM_MAJOR_VERSION;
- r->out.ServerVersion.MinorVersion = COM_MINOR_VERSION;
-
- r->out.AuthnHint = DCERPC_AUTH_LEVEL_DEFAULT;
- r->out.pdsaOxidBindings = dcom_server_generate_dual_string(mem_ctx, dce_call);
-
- /* FIXME: Loop thru given interfaces and set r->out.results and
- * r->out.interfaces */
- r->out.ifaces = talloc_array(mem_ctx, struct pMInterfacePointer, r->in.Interfaces);
- r->out.results = talloc_array(mem_ctx, WERROR, r->in.Interfaces);
- r->out.hr = cr->out.result;
-
- for (i = 0; i < r->in.Interfaces; i++) {
- struct QueryInterface rr;
- rr.in.iid = &r->in.pIIDs[i];
- dcom_IUnknown_QueryInterface(o, mem_ctx, &rr);
- ZERO_STRUCT(r->out.ifaces[i]);
- r->out.results[i] = rr.out.result;
- }
-
- /* FIXME: */
- r->out.pOxid = 0;
- ZERO_STRUCT(r->out.ipidRemUnknown);
-
- return WERR_OK;
-}
-
-
-NTSTATUS dcerpc_server_dcom_init(void)
-{
- NTSTATUS status;
- status = dcerpc_server_IOXIDResolver_init();
- if (NT_STATUS_IS_ERR(status)) {
- return status;
- }
-
- status = dcerpc_server_IRemoteActivation_init();
- if (NT_STATUS_IS_ERR(status)) {
- return status;
- }
-
- return NT_STATUS_OK;
-}
-
-/* include the generated boilerplate */
-#include "librpc/gen_ndr/ndr_remact_s.c"
diff --git a/source4/rpc_server/dcom/rodb.c b/source4/rpc_server/dcom/rodb.c
deleted file mode 100644
index 76f3d2da80..0000000000
--- a/source4/rpc_server/dcom/rodb.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- Running objects database
-
- 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.
-*/
-
-#include "includes.h"
-#include "system/filesys.h"
-#include "rpc_server/dcerpc_server.h"
-#include "librpc/gen_ndr/ndr_rot.h"
-#include "rpc_server/common/common.h"
-
-struct tdb_wrap *openrodb(TALLOC_CTX *mem_ctx)
-{
- struct tdb_wrap *wrap;
- char *rodb_name = NULL;
-
- rodb_name = smbd_tmp_path(mem_ctx, "rot.tdb");
- wrap = tdb_wrap_open(mem_ctx, rodb_name, 0, 0, O_RDWR|O_CREAT, 0600);
- SAFE_FREE(rodb_name);
-
- return wrap;
-}
-
diff --git a/source4/rpc_server/dcom/rot.c b/source4/rpc_server/dcom/rot.c
deleted file mode 100644
index f36eaf20d1..0000000000
--- a/source4/rpc_server/dcom/rot.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- endpoint server for the rot pipe
-
- 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.
-*/
-
-#include "includes.h"
-#include "rpc_server/dcerpc_server.h"
-#include "librpc/gen_ndr/ndr_rot.h"
-#include "rpc_server/common/common.h"
-
-/*
- rot_add
-*/
-static WERROR rot_add(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct rot_add *r)
-{
- struct tdb_wrap *db = openrodb(mem_ctx);
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
- talloc_free(db);
-}
-
-
-/*
- rot_remove
-*/
-static WERROR rot_remove(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct rot_remove *r)
-{
- struct tdb_wrap *db = openrodb(mem_ctx);
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
- talloc_free(db);
-}
-
-
-/*
- rot_is_listed
-*/
-static WERROR rot_is_listed(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct rot_is_listed *r)
-{
- struct tdb_wrap *db = openrodb(mem_ctx);
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
- talloc_free(db);
-}
-
-
-/*
- rot_get_interface_pointer
-*/
-static WERROR rot_get_interface_pointer(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct rot_get_interface_pointer *r)
-{
- struct tdb_wrap *db = openrodb(mem_ctx);
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
- talloc_free(db);
-}
-
-
-/*
- rot_set_modification_time
-*/
-static WERROR rot_set_modification_time(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct rot_set_modification_time *r)
-{
- struct tdb_wrap *db = openrodb(mem_ctx);
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
- talloc_free(db);
-}
-
-
-/*
- rot_get_modification_time
-*/
-static WERROR rot_get_modification_time(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct rot_get_modification_time *r)
-{
- struct tdb_wrap *db = openrodb(mem_ctx);
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
- talloc_free(db);
-}
-
-
-/*
- rot_enum
-*/
-static WERROR rot_enum(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct rot_enum *r)
-{
- struct tdb_wrap *db = openrodb(mem_ctx);
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
- talloc_free(db);
-}
-
-
-/* include the generated boilerplate */
-#include "librpc/gen_ndr/ndr_rot_s.c"