diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-10-28 23:06:12 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:04:57 -0500 |
commit | 479bf22c813501f040adf7b6267b961748baa63f (patch) | |
tree | de1bbae68ca012671b2680ba02c973c4a9f71cc3 /source4/rpc_server | |
parent | 858f1763229a8da808a7473f565382a4b2924917 (diff) | |
download | samba-479bf22c813501f040adf7b6267b961748baa63f.tar.gz samba-479bf22c813501f040adf7b6267b961748baa63f.tar.bz2 samba-479bf22c813501f040adf7b6267b961748baa63f.zip |
r3340: Various fixes in the registry code. Implement the EnumKey call
in the server.
(This used to be commit da65a248c292a90342e1394ee4132ef2c7afd3c8)
Diffstat (limited to 'source4/rpc_server')
-rw-r--r-- | source4/rpc_server/winreg/rpc_winreg.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source4/rpc_server/winreg/rpc_winreg.c b/source4/rpc_server/winreg/rpc_winreg.c index fc6e426152..6fa42d2bcd 100644 --- a/source4/rpc_server/winreg/rpc_winreg.c +++ b/source4/rpc_server/winreg/rpc_winreg.c @@ -177,7 +177,15 @@ static WERROR winreg_EnumKey(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem h = dcesrv_handle_fetch(dce_call->conn, r->in.handle, HTYPE_REGKEY); DCESRV_CHECK_HANDLE(h); - key = h->data; + r->out.result = reg_key_get_subkey_by_index(mem_ctx, (struct registry_key *)h->data, r->in.enum_index, &key); + + if (W_ERROR_IS_OK(r->out.result)) { + r->out.key_name_len = strlen(key->name); + r->out.out_name = talloc_zero_p(mem_ctx, struct winreg_EnumKeyNameResponse); + r->out.out_name->name = key->name; + r->out.class = talloc_zero_p(mem_ctx, struct winreg_String); + r->out.last_changed_time = talloc_zero_p(mem_ctx, struct winreg_Time); + } return WERR_NOT_SUPPORTED; } |