diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-05-25 19:34:05 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:08:37 -0500 |
commit | aecb20a2646520d04e09fe37ea10cd5cc0a93f7b (patch) | |
tree | 01679a2dfaf8900a8b0cf0c54fbc83bf9044f718 /source4/lib/com/classes/simple.c | |
parent | 64fe1e92a5477ff24878985854d7dbb768382c7d (diff) | |
download | samba-aecb20a2646520d04e09fe37ea10cd5cc0a93f7b.tar.gz samba-aecb20a2646520d04e09fe37ea10cd5cc0a93f7b.tar.xz 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/lib/com/classes/simple.c')
-rw-r--r-- | source4/lib/com/classes/simple.c | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/source4/lib/com/classes/simple.c b/source4/lib/com/classes/simple.c deleted file mode 100644 index 295f113207..0000000000 --- a/source4/lib/com/classes/simple.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - Unix SMB/CIFS implementation. - Simple class - Copyright (C) 2004-2005 Jelmer Vernooij <jelmer@samba.org> - - 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 "lib/com/com.h" -#include "librpc/gen_ndr/com_dcom.h" - -static struct IClassFactory_vtable simple_classobject_vtable; -static struct IStream_vtable simple_IStream_vtable; - -static WERROR simple_IUnknown_QueryInterface (struct IUnknown *d, TALLOC_CTX *mem_ctx, struct GUID *iid, struct IUnknown **iun) -{ - *iun = d; - return WERR_OK; -} - -static uint32_t simple_IUnknown_AddRef (struct IUnknown *d, TALLOC_CTX *mem_ctx) -{ - return 1; -} - -static uint32_t simple_IUnknown_Release (struct IUnknown *d, TALLOC_CTX *mem_ctx) -{ - return 1; -} - -static WERROR simple_IStream_Read (struct IStream *d, TALLOC_CTX *mem_ctx, uint8_t *pv, uint32_t num_requested, uint32_t *num_readx, uint32_t num_read) -{ - printf("%d bytes are being read\n", num_read); - return WERR_OK; -} - -static WERROR simple_IStream_Write (struct IStream *d, TALLOC_CTX *mem_ctx, uint8_t *data, uint32_t num_requested, uint32_t num_written) -{ - printf("%d bytes are being written\n", num_requested); - return WERR_OK; -} - -static WERROR simpleclass_IUnknown_QueryInterface (struct IUnknown *d, TALLOC_CTX *mem_ctx, struct GUID *iid, struct IUnknown **iun) -{ - /* FIXME: Return WERR_IFACE_NOT_SUPPORTED if IID != IID_IUNKNOWN and IID != IID_CLASSFACTORY */ - *iun = d; - return WERR_OK; -} - -static WERROR simpleclass_IClassFactory_CreateInstance (struct IClassFactory *d, TALLOC_CTX *mem_ctx, struct IUnknown *iunk, struct GUID *iid, struct IUnknown **ppv) -{ - struct IStream *ret; - /* FIXME: Check whether IID == ISTREAM_IID */ - ret = talloc(mem_ctx, struct IStream); - ret->ctx = NULL; - ret->vtable = &simple_IStream_vtable; - ret->object_data = NULL; - - *ppv = (struct IUnknown *)ret; - - return WERR_OK; -} - -static uint32_t simpleclass_IUnknown_AddRef (struct IUnknown *d, TALLOC_CTX *mem_ctx) -{ - return 1; -} - -static uint32_t simpleclass_IUnknown_Release (struct IUnknown *d, TALLOC_CTX *mem_ctx) -{ - return 1; -} - -/* Everything below this line should be autogenerated later on */ -static struct IClassFactory_vtable simple_classobject_vtable = { - { 0, 0, 0, { 0, 0 }, { 0, 0, 0, 0, 0, 0 } }, - simpleclass_IUnknown_QueryInterface, - simpleclass_IUnknown_AddRef, - simpleclass_IUnknown_Release, - simpleclass_IClassFactory_CreateInstance, - NULL, - NULL, - NULL -}; - -static struct IStream_vtable simple_IStream_vtable = { - { 0, 0, 0, { 0, 0 }, { 0, 0, 0, 0, 0, 0 } }, - simple_IUnknown_QueryInterface, - simple_IUnknown_AddRef, - simple_IUnknown_Release, - simple_IStream_Read, - simple_IStream_Write -}; - -NTSTATUS com_simple_init(void) -{ - struct GUID clsid; - struct IUnknown *class_object = talloc(talloc_autofree_context(), struct IUnknown); - - class_object->ctx = NULL; - class_object->object_data = NULL; - class_object->vtable = (struct IUnknown_vtable *)&simple_classobject_vtable; - - GUID_from_string(CLSID_SIMPLE, &clsid); - GUID_from_string(COM_ICLASSFACTORY_UUID, &simple_classobject_vtable.iid); - GUID_from_string(COM_ISTREAM_UUID, &simple_IStream_vtable.iid); - - return com_register_running_class(&clsid, PROGID_SIMPLE, class_object); -} |