diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-09-27 16:37:41 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:59:24 -0500 |
commit | fc3c05e63f4fedb1532e86d9421490fda6435c79 (patch) | |
tree | f92acca1dfb09c9c299031339c1f4639bb5d4169 /source4/rpc_server | |
parent | eac532ee3af95654b62d4db57feea0df6abab345 (diff) | |
download | samba-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.m4 | 1 | ||||
-rw-r--r-- | source4/rpc_server/config.mk | 12 | ||||
-rw-r--r-- | source4/rpc_server/dcerpc_tcp.c | 2 | ||||
-rw-r--r-- | source4/rpc_server/dcom/oxidresolver.c | 87 | ||||
-rw-r--r-- | source4/rpc_server/winreg/rpc_winreg.c | 25 |
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 |