summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-09-27 16:37:41 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:24 -0500
commitfc3c05e63f4fedb1532e86d9421490fda6435c79 (patch)
treef92acca1dfb09c9c299031339c1f4639bb5d4169 /source4/rpc_server
parenteac532ee3af95654b62d4db57feea0df6abab345 (diff)
downloadsamba-fc3c05e63f4fedb1532e86d9421490fda6435c79.tar.gz
samba-fc3c05e63f4fedb1532e86d9421490fda6435c79.tar.bz2
samba-fc3c05e63f4fedb1532e86d9421490fda6435c79.zip
r2696: DCOM updates:
- Start working on OXIDResolver interface - Add torture test for SimplePing() (This used to be commit b54d14a01a71082251ff926ab57974c6eb3c0a41)
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/config.m41
-rw-r--r--source4/rpc_server/config.mk12
-rw-r--r--source4/rpc_server/dcerpc_tcp.c2
-rw-r--r--source4/rpc_server/dcom/oxidresolver.c87
-rw-r--r--source4/rpc_server/winreg/rpc_winreg.c25
5 files changed, 116 insertions, 11 deletions
diff --git a/source4/rpc_server/config.m4 b/source4/rpc_server/config.m4
index 73cae66456..d4e45177aa 100644
--- a/source4/rpc_server/config.m4
+++ b/source4/rpc_server/config.m4
@@ -15,5 +15,6 @@ SMB_MODULE_MK(dcerpc_winreg,DCERPC,STATIC,rpc_server/config.mk)
SMB_MODULE_MK(dcerpc_netlogon,DCERPC,STATIC,rpc_server/config.mk)
SMB_MODULE_MK(dcerpc_lsarpc,DCERPC,STATIC,rpc_server/config.mk)
SMB_MODULE_MK(dcerpc_spoolss,DCERPC,STATIC,rpc_server/config.mk)
+SMB_MODULE_MK(dcerpc_IOXIDResolver,DCERPC,STATIC,rpc_server/config.mk)
SMB_SUBSYSTEM_MK(DCERPC,rpc_server/config.mk)
diff --git a/source4/rpc_server/config.mk b/source4/rpc_server/config.mk
index dbe8b8344e..779bf997ed 100644
--- a/source4/rpc_server/config.mk
+++ b/source4/rpc_server/config.mk
@@ -12,6 +12,18 @@ ADD_OBJ_FILES = \
################################################
################################################
+# Start MODULE dcerpc_IOXIDResolver
+[MODULE::dcerpc_IOXIDResolver]
+INIT_OBJ_FILES = \
+ rpc_server/dcom/oxidresolver.o
+REQUIRED_SUBSYSTEMS = \
+ DCERPC_COMMON
+# End MODULE dcerpc_IOXIDResolver
+################################################
+
+
+
+################################################
# Start SUBSYSTEM SAMDB
[SUBSYSTEM::SAMDB]
INIT_OBJ_FILES = \
diff --git a/source4/rpc_server/dcerpc_tcp.c b/source4/rpc_server/dcerpc_tcp.c
index 9a22c5eb5e..9cbcea5a36 100644
--- a/source4/rpc_server/dcerpc_tcp.c
+++ b/source4/rpc_server/dcerpc_tcp.c
@@ -78,7 +78,7 @@ static void add_socket_rpc(struct server_service *service,
continue;
}
- /* remeber the enpoint of this socket */
+ /* remember the endpoint of this socket */
dcesrv_sock->endpoint = e;
dcesrv_sock->dcesrv_ctx = dce_ctx;
diff --git a/source4/rpc_server/dcom/oxidresolver.c b/source4/rpc_server/dcom/oxidresolver.c
new file mode 100644
index 0000000000..23de6a5d66
--- /dev/null
+++ b/source4/rpc_server/dcom/oxidresolver.c
@@ -0,0 +1,87 @@
+/*
+ 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"
+
+
+/*
+ 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)
+{
+ return WERR_NOT_SUPPORTED;
+}
+
+
+/*
+ ServerAlive
+*/
+static WERROR ServerAlive(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct ServerAlive *r)
+{
+ return WERR_NOT_SUPPORTED;
+}
+
+
+/*
+ ResolveOxid2
+*/
+static WERROR ResolveOxid2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct ResolveOxid2 *r)
+{
+ return WERR_NOT_SUPPORTED;
+}
+
+
+/*
+ ServerAlive2
+*/
+static WERROR ServerAlive2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct ServerAlive2 *r)
+{
+ return WERR_NOT_SUPPORTED;
+}
+
+
+/* include the generated boilerplate */
+#include "librpc/gen_ndr/ndr_oxidresolver_s.c"
diff --git a/source4/rpc_server/winreg/rpc_winreg.c b/source4/rpc_server/winreg/rpc_winreg.c
index 081df230b8..8e7635c894 100644
--- a/source4/rpc_server/winreg/rpc_winreg.c
+++ b/source4/rpc_server/winreg/rpc_winreg.c
@@ -52,7 +52,12 @@ static NTSTATUS winreg_bind(struct dcesrv_call_state *dc, const struct dcesrv_in
struct _privatedata *data;
WERROR error;
data = talloc_p(dc->conn, struct _privatedata);
- error = reg_open(&data->registry, "dir", "/tmp/reg", "");
+ error = reg_create(&data->registry);
+
+ /* FIXME: This should happen somewhere after configuration... */
+ reg_import_hive(data->registry, "nt4", "NTUSER.DAT", "", "HKEY_CURRENT_USER");
+ reg_import_hive(data->registry, "ldb", "ldb:///", "", "HKEY_LOCAL_MACHINE");
+
if(!W_ERROR_IS_OK(error)) return werror_to_ntstatus(error);
dc->conn->private = data;
return NT_STATUS_OK;
@@ -76,15 +81,15 @@ static NTSTATUS winreg_bind(struct dcesrv_call_state *dc, const struct dcesrv_in
return WERR_OK; \
}
-func_winreg_OpenHive(HKCR,"\\HKEY_CLASSES_ROOT")
-func_winreg_OpenHive(HKCU,"\\HKEY_CURRENT_USER")
-func_winreg_OpenHive(HKLM,"\\HKEY_LOCAL_MACHINE")
-func_winreg_OpenHive(HKPD,"\\HKEY_PERFORMANCE_DATA")
-func_winreg_OpenHive(HKU,"\\HKEY_USERS")
-func_winreg_OpenHive(HKCC,"\\HKEY_CC")
-func_winreg_OpenHive(HKDD,"\\HKEY_DD")
-func_winreg_OpenHive(HKPT,"\\HKEY_PT")
-func_winreg_OpenHive(HKPN,"\\HKEY_PN")
+func_winreg_OpenHive(HKCR,"HKEY_CLASSES_ROOT")
+func_winreg_OpenHive(HKCU,"HKEY_CURRENT_USER")
+func_winreg_OpenHive(HKLM,"HKEY_LOCAL_MACHINE")
+func_winreg_OpenHive(HKPD,"HKEY_PERFORMANCE_DATA")
+func_winreg_OpenHive(HKU,"HKEY_USERS")
+func_winreg_OpenHive(HKCC,"HKEY_CC")
+func_winreg_OpenHive(HKDD,"HKEY_DD")
+func_winreg_OpenHive(HKPT,"HKEY_PT")
+func_winreg_OpenHive(HKPN,"HKEY_PN")
/*
winreg_CloseKey