diff options
-rw-r--r-- | source4/build/pidl/template.pm | 5 | ||||
-rw-r--r-- | source4/librpc/idl/dcom.idl | 14 | ||||
-rw-r--r-- | source4/librpc/idl/rot.idl | 13 | ||||
-rw-r--r-- | source4/rpc_server/dcom/rot.c | 84 |
4 files changed, 104 insertions, 12 deletions
diff --git a/source4/build/pidl/template.pm b/source4/build/pidl/template.pm index 2942c6f713..27f5d0c277 100644 --- a/source4/build/pidl/template.pm +++ b/source4/build/pidl/template.pm @@ -23,7 +23,7 @@ sub Template($) endpoint server for the $name pipe - Copyright (C) YOUR NAME HERE XXXX + Copyright (C) YOUR NAME HERE YEAR 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 @@ -41,6 +41,9 @@ sub Template($) */ #include \"includes.h\" +#include \"rpc_server/dcerpc_server.h\" +#include \"librpc/gen_ndr/ndr_$name.h\" +#include \"rpc_server/common/common.h\" "; diff --git a/source4/librpc/idl/dcom.idl b/source4/librpc/idl/dcom.idl index d9c5a72ab2..d29c7476ef 100644 --- a/source4/librpc/idl/dcom.idl +++ b/source4/librpc/idl/dcom.idl @@ -324,6 +324,20 @@ interface IRemUnknown : IUnknown WERROR ISCMLocalActivator_CreateInstance( ); } +[ + uuid("c6f3ee72-ce7e-11d1-b71e-00c04fc3111a") +] interface IMachineLocalActivator +{ + WERROR IMachineLocalActivator_foo(); +} + +[ + uuid("e60c73e6-88f9-11cf-9af1-0020af6e72f4") +] interface ILocalObjectExporter +{ + WERROR ILocalObjectExporter_Foo(); +} + /* Looks like this is the equivalent of .NET's System.Activator class */ [ diff --git a/source4/librpc/idl/rot.idl b/source4/librpc/idl/rot.idl index d9a67ecbe1..3b3bd6e987 100644 --- a/source4/librpc/idl/rot.idl +++ b/source4/librpc/idl/rot.idl @@ -41,3 +41,16 @@ [out] MInterfacePointer *EnumMoniker ); } + +/* +[ + object, +] interface IRotData : IUnknown +{ + WERROR irotdata_getdata( + [out,size_is(max),length_is(ret)] uint8 *data, + [in] uint32 max, + [out] uint32 ret + ); +} +*/ diff --git a/source4/rpc_server/dcom/rot.c b/source4/rpc_server/dcom/rot.c index d639bd9bf3..1a58833204 100644 --- a/source4/rpc_server/dcom/rot.c +++ b/source4/rpc_server/dcom/rot.c @@ -1,7 +1,7 @@ /* Unix SMB/CIFS implementation. - Running object table functions + endpoint server for the rot pipe Copyright (C) Jelmer Vernooij 2004 @@ -22,17 +22,79 @@ #include "includes.h" #include "rpc_server/dcerpc_server.h" +#include "librpc/gen_ndr/ndr_rot.h" #include "rpc_server/common/common.h" -struct dcom_object *dcom_call_get_object(struct dcesrv_call_state *call) + +/* + rot_add +*/ +static WERROR rot_add(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, + struct rot_add *r) +{ + DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); +} + + +/* + rot_remove +*/ +static WERROR rot_remove(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, + struct rot_remove *r) +{ + DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); +} + + +/* + rot_is_listed +*/ +static WERROR rot_is_listed(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, + struct rot_is_listed *r) +{ + DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); +} + + +/* + 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 GUID *object; - - if (! (call->pkt.pfc_flags & DCERPC_PFC_FLAG_ORPC) ) { - return NULL; - } - - object = &call->pkt.u.request.object.object; - /* FIXME */ - return NULL; + DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); } + + +/* + 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) +{ + DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); +} + + +/* + 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) +{ + DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); +} + + +/* + rot_enum +*/ +static WERROR rot_enum(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, + struct rot_enum *r) +{ + DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); +} + + +/* include the generated boilerplate */ +#include "librpc/gen_ndr/ndr_rot_s.c" |