summaryrefslogtreecommitdiff
path: root/source4/rpc_server/winreg
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-10-29 11:44:59 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:02 -0500
commita29c24f180cc21b358c51a86632eb1cc2cb17868 (patch)
treeb34b72f11e918d2b3b88534e0ff49058af02665f /source4/rpc_server/winreg
parente78bfc960385a094b03faa462408d8c8391fcbaf (diff)
downloadsamba-a29c24f180cc21b358c51a86632eb1cc2cb17868.tar.gz
samba-a29c24f180cc21b358c51a86632eb1cc2cb17868.tar.bz2
samba-a29c24f180cc21b358c51a86632eb1cc2cb17868.zip
r3367: More registry updates.
Add support flush_key and close_hive. (This used to be commit c526273df238c994c4de3c1704c6e95433f2331c)
Diffstat (limited to 'source4/rpc_server/winreg')
-rw-r--r--source4/rpc_server/winreg/rpc_winreg.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source4/rpc_server/winreg/rpc_winreg.c b/source4/rpc_server/winreg/rpc_winreg.c
index 9ef696d6aa..0a071ef741 100644
--- a/source4/rpc_server/winreg/rpc_winreg.c
+++ b/source4/rpc_server/winreg/rpc_winreg.c
@@ -27,7 +27,7 @@ enum handle_types { HTYPE_REGVAL, HTYPE_REGKEY };
static void winreg_destroy_hive(struct dcesrv_connection *c, struct dcesrv_handle *h)
{
- /* FIXME: Free ((struct registry_key *)h->data)->root->hive->reg_ctx */
+ reg_close(((struct registry_key *)h->data)->hive->reg_ctx);
}
static WERROR winreg_openhive (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, const char *hivename, struct policy_handle **outh)
@@ -208,7 +208,12 @@ static WERROR winreg_EnumValue(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
static WERROR winreg_FlushKey(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct winreg_FlushKey *r)
{
- return WERR_NOT_SUPPORTED;
+ struct dcesrv_handle *h;
+
+ h = dcesrv_handle_fetch(dce_call->conn, r->in.handle, HTYPE_REGKEY);
+ DCESRV_CHECK_HANDLE(h);
+
+ return reg_key_flush(h->data);
}