mirror of
https://github.com/samba-team/samba.git
synced 2025-03-08 04:58:40 +03:00
r3891: Add rot (Running Object Table) interface
This commit is contained in:
parent
a2ea2166dc
commit
4840eaeed3
@ -22,6 +22,7 @@
|
||||
|
||||
#include "includes.h"
|
||||
|
||||
|
||||
struct dcom_interface_p *dcom_get_iface_p(struct GUID *ipid)
|
||||
{
|
||||
/* FIXME */
|
||||
|
@ -72,6 +72,12 @@ INIT_OBJ_FILES = librpc/gen_ndr/ndr_misc.o
|
||||
NOPROTO = YES
|
||||
REQUIRED_SUBSYSTEMS = LIBNDR
|
||||
|
||||
[SUBSYSTEM::NDR_ROT]
|
||||
INIT_FUNCTION = dcerpc_rot_init
|
||||
INIT_OBJ_FILES = librpc/gen_ndr/ndr_rot.o
|
||||
NOPROTO = YES
|
||||
REQUIRED_SUBSYSTEMS = LIBNDR
|
||||
|
||||
[SUBSYSTEM::NDR_LSA]
|
||||
INIT_FUNCTION = dcerpc_lsa_init
|
||||
INIT_OBJ_FILES = librpc/gen_ndr/ndr_lsa.o
|
||||
@ -289,8 +295,13 @@ REQUIRED_SUBSYSTEMS = NDR_AUDIOSRV NDR_ECHO NDR_DCERPC NDR_EXCHANGE \
|
||||
NDR_EVENTLOG NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINS \
|
||||
NDR_WINREG NDR_MGMT NDR_PROTECTED_STORAGE NDR_DCOM NDR_OXIDRESOLVER \
|
||||
NDR_REMACT NDR_WZCSVC NDR_BROWSER NDR_W32TIME NDR_SCERPC NDR_NTSVCS \
|
||||
NDR_NETLOGON NDR_TRKWKS NDR_KEYSVC NDR_KRB5PAC NDR_XATTR NDR_SCHANNEL
|
||||
NDR_NETLOGON NDR_TRKWKS NDR_KEYSVC NDR_KRB5PAC NDR_XATTR NDR_SCHANNEL \
|
||||
NDR_ROT
|
||||
|
||||
[SUBSYSTEM::RPC_NDR_ROT]
|
||||
ADD_OBJ_FILES = librpc/gen_ndr/ndr_rot_c.o
|
||||
REQUIRED_SUBSYSTEMS = NDR_ROT LIBRPC
|
||||
NOPROTO = YES
|
||||
|
||||
[SUBSYSTEM::RPC_NDR_AUDIOSRV]
|
||||
ADD_OBJ_FILES = librpc/gen_ndr/ndr_audiosrv_c.o
|
||||
|
43
source/librpc/idl/rot.idl
Normal file
43
source/librpc/idl/rot.idl
Normal file
@ -0,0 +1,43 @@
|
||||
#include "idl_types.h"
|
||||
|
||||
[
|
||||
uuid("b9e79e60-3d52-11ce-aaa1-00006901293f"),
|
||||
version(0.2),
|
||||
endpoint("ncacn_np:[\\pipe\\epmapper]", "ncacn_ip_tcp:[135]",
|
||||
"ncalrpc:[EPMAPPER]", "ncacn_unix_stream:[/tmp/epmapper]")
|
||||
] interface rot
|
||||
{
|
||||
WERROR rot_add (
|
||||
[in] uint32 flags,
|
||||
[in] MInterfacePointer *unk,
|
||||
[in] MInterfacePointer *moniker,
|
||||
[out] uint32 rotid
|
||||
);
|
||||
|
||||
WERROR rot_remove (
|
||||
[in] uint32 rotid
|
||||
);
|
||||
|
||||
WERROR rot_is_listed (
|
||||
[in] MInterfacePointer *moniker
|
||||
);
|
||||
|
||||
WERROR rot_get_interface_pointer (
|
||||
[in] MInterfacePointer *moniker,
|
||||
[out] MInterfacePointer *ip
|
||||
);
|
||||
|
||||
WERROR rot_set_modification_time (
|
||||
[in] uint32 rotid,
|
||||
[in] NTTIME *t
|
||||
);
|
||||
|
||||
WERROR rot_get_modification_time (
|
||||
[in] MInterfacePointer *moniker,
|
||||
[out] NTTIME t
|
||||
);
|
||||
|
||||
WERROR rot_enum (
|
||||
[out] MInterfacePointer *EnumMoniker
|
||||
);
|
||||
}
|
@ -19,7 +19,8 @@ SUBSYSTEM = DCERPC
|
||||
INIT_OBJ_FILES = \
|
||||
rpc_server/dcom/oxidresolver.o \
|
||||
rpc_server/dcom/rot.o \
|
||||
rpc_server/dcom/remact.o
|
||||
rpc_server/dcom/remact.o \
|
||||
librpc/gen_ndr/ndr_dcom_d.o
|
||||
REQUIRED_SUBSYSTEMS = \
|
||||
DCERPC_COMMON \
|
||||
NDR_OXIDRESOLVER \
|
||||
|
@ -95,13 +95,14 @@ ADD_OBJ_FILES = \
|
||||
torture/rpc/netlogon.o \
|
||||
torture/rpc/samlogon.o \
|
||||
torture/rpc/samsync.o \
|
||||
torture/rpc/rot.o \
|
||||
torture/rpc/bind.o
|
||||
REQUIRED_SUBSYSTEMS = \
|
||||
NDR_ALL RPC_NDR_SAMR RPC_NDR_WINREG RPC_NDR_OXIDRESOLVER \
|
||||
RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL \
|
||||
RPC_NDR_MGMT RPC_NDR_NETLOGON RPC_NDR_ATSVC RPC_NDR_DRSUAPI \
|
||||
RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_SPOOLSS \
|
||||
RPC_NDR_SRVSVC RPC_NDR_WKSSVC
|
||||
RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT
|
||||
# End SUBSYSTEM TORTURE_RPC
|
||||
#################################
|
||||
|
||||
|
46
source/torture/rpc/rot.c
Normal file
46
source/torture/rpc/rot.c
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
test suite for the running object table
|
||||
|
||||
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_rot.h"
|
||||
|
||||
BOOL torture_rpc_rot(void)
|
||||
{
|
||||
NTSTATUS status;
|
||||
struct dcerpc_pipe *p;
|
||||
TALLOC_CTX *mem_ctx;
|
||||
BOOL ret = True;
|
||||
|
||||
mem_ctx = talloc_init("torture_rpc_rot");
|
||||
|
||||
status = torture_rpc_connection(&p,
|
||||
DCERPC_ROT_NAME,
|
||||
DCERPC_ROT_UUID,
|
||||
DCERPC_ROT_VERSION);
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
return False;
|
||||
}
|
||||
|
||||
torture_rpc_close(p);
|
||||
|
||||
return ret;
|
||||
}
|
@ -2461,6 +2461,7 @@ static struct {
|
||||
{"RPC-MULTIBIND", torture_multi_bind, 0},
|
||||
{"RPC-DRSUAPI", torture_rpc_drsuapi, 0},
|
||||
{"RPC-LOGIN", torture_rpc_login, 0},
|
||||
{"RPC-ROT", torture_rpc_rot, 0},
|
||||
|
||||
/* Distributed COM testers */
|
||||
{"DCOM-SIMPLE", torture_dcom_simple, 0},
|
||||
|
@ -116,6 +116,11 @@ static void show_functions(const struct dcerpc_interface_table *p)
|
||||
|
||||
p = idl_iface_by_name(pipe_name);
|
||||
|
||||
if (!p) {
|
||||
printf("Unknown pipe '%s'\n", pipe_name);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
function = poptGetArg(pc);
|
||||
inout = poptGetArg(pc);
|
||||
filename = poptGetArg(pc);
|
||||
|
Loading…
x
Reference in New Issue
Block a user