summaryrefslogtreecommitdiff
path: root/source4/rpc_server/dcom/remact.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-11-09 00:30:44 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:40 -0500
commitb3ef49946f9c064f05e387d8786112809d2f2da6 (patch)
tree0625e123dcbdec168c2482932dba2b66ce81b98d /source4/rpc_server/dcom/remact.c
parente056ed97d79c046a7f4b9562ad785fc54719a8ce (diff)
downloadsamba-b3ef49946f9c064f05e387d8786112809d2f2da6.tar.gz
samba-b3ef49946f9c064f05e387d8786112809d2f2da6.tar.bz2
samba-b3ef49946f9c064f05e387d8786112809d2f2da6.zip
r3629: A bit of work on the DCOM server architecture, small fixes
(This used to be commit e7b67ff22fe0a76afc93ee522b253eaf5dccb11d)
Diffstat (limited to 'source4/rpc_server/dcom/remact.c')
-rw-r--r--source4/rpc_server/dcom/remact.c47
1 files changed, 29 insertions, 18 deletions
diff --git a/source4/rpc_server/dcom/remact.c b/source4/rpc_server/dcom/remact.c
index 8259b96a51..086d32a82f 100644
--- a/source4/rpc_server/dcom/remact.c
+++ b/source4/rpc_server/dcom/remact.c
@@ -24,26 +24,9 @@
#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"
#include "rpc_server/dcom/dcom.h"
-static void register_dcom_class(void *_c)
-{
- struct dcom_class *class = _c;
- /* FIXME */
-}
-
-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_interface_pointer *dcom_interface_pointer_by_ipid(struct GUID *ipid)
{
/* FIXME */
@@ -57,10 +40,38 @@ static WERROR RemoteActivation(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
{
/* FIXME: CoGetClassObject() */
/* FIXME: IClassFactory::CreateInstance() */
+ /* FIXME: Register newly created object with dcerpc subsystem */
/* FIXME: IClassFactory::Release() */
+
+ ZERO_STRUCT(r->out);
+ r->out.ServerVersion.MajorVersion = COM_MAJOR_VERSION;
+ r->out.ServerVersion.MinorVersion = COM_MINOR_VERSION;
+
+ /* FIXME: */
+ r->out.hr = WERR_NOT_SUPPORTED;
+ r->out.pOxid = 0;
+ r->out.AuthnHint = 0;
+ /* FIXME: Loop thru given interfaces and set r->out.results and
+ * r->out.interfaces */
+
return WERR_NOT_SUPPORTED;
}
+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"