diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-01-07 14:11:29 -0600 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-01-07 08:18:07 -0600 |
commit | 47f6bbf8cf5bdd03c72c59d00e3e1eab8895590e (patch) | |
tree | ffbfa1586fa70dd22422e8e697985af51ec75fd4 /source4/lib/registry/rpc.c | |
parent | 7f8276b06d5000d12c0d64167853a033b924af32 (diff) | |
download | samba-47f6bbf8cf5bdd03c72c59d00e3e1eab8895590e.tar.gz samba-47f6bbf8cf5bdd03c72c59d00e3e1eab8895590e.tar.bz2 samba-47f6bbf8cf5bdd03c72c59d00e3e1eab8895590e.zip |
r26689: registry: Return max_subkeynamelen, max_valnamelen and max_valbufsize in getkeyinfo().
(This used to be commit b06896d2378e536f5044dbe500a5232a89d6d0b5)
Diffstat (limited to 'source4/lib/registry/rpc.c')
-rw-r--r-- | source4/lib/registry/rpc.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/source4/lib/registry/rpc.c b/source4/lib/registry/rpc.c index 2a6cabc3b8..18b7607713 100644 --- a/source4/lib/registry/rpc.c +++ b/source4/lib/registry/rpc.c @@ -29,6 +29,7 @@ struct rpc_key { uint32_t num_subkeys; uint32_t max_valnamelen; uint32_t max_valdatalen; + uint32_t max_subkeynamelen; }; struct rpc_registry_context { @@ -202,7 +203,7 @@ static WERROR rpc_get_value_by_index(TALLOC_CTX *mem_ctx, } name.length = 0; - name.size = mykeydata->max_valnamelen * 2+1; + name.size = mykeydata->max_valnamelen * 2; name.name = NULL; r.in.handle = &mykeydata->pol; @@ -213,6 +214,7 @@ static WERROR rpc_get_value_by_index(TALLOC_CTX *mem_ctx, r.in.length = &zero; r.in.size = &mykeydata->max_valdatalen; r.out.name = &name; + r.out.type = type; status = dcerpc_winreg_EnumValue(mykeydata->pipe, mem_ctx, &r); if(NT_STATUS_IS_ERR(status)) { @@ -313,18 +315,17 @@ static WERROR rpc_query_key(const struct registry_key *k) struct rpc_key *mykeydata = talloc_get_type(k, struct rpc_key); TALLOC_CTX *mem_ctx = talloc_init("query_key"); uint32_t max_subkeysize; - uint32_t num_values; uint32_t secdescsize; NTTIME last_changed_time; ZERO_STRUCT(r.out); r.out.num_subkeys = &mykeydata->num_subkeys; - r.out.max_subkeylen = &mykeydata->num_values; + r.out.max_subkeylen = &mykeydata->max_subkeynamelen; r.out.max_valnamelen = &mykeydata->max_valnamelen; r.out.max_valbufsize = &mykeydata->max_valdatalen; r.out.max_subkeysize = &max_subkeysize; - r.out.num_values = &num_values; + r.out.num_values = &mykeydata->num_values; r.out.secdescsize = &secdescsize; r.out.last_changed_time = &last_changed_time; @@ -367,7 +368,10 @@ static WERROR rpc_get_info(TALLOC_CTX *mem_ctx, const struct registry_key *key, const char **classname, uint32_t *numsubkeys, uint32_t *numvalue, - NTTIME *last_changed_time) + NTTIME *last_changed_time, + uint32_t *max_subkeynamelen, + uint32_t *max_valnamelen, + uint32_t *max_valbufsize) { struct rpc_key *mykeydata = talloc_get_type(key, struct rpc_key); WERROR error; @@ -386,6 +390,15 @@ static WERROR rpc_get_info(TALLOC_CTX *mem_ctx, const struct registry_key *key, if (numsubkeys != NULL) *numsubkeys = mykeydata->num_subkeys; + if (max_valnamelen != NULL) + *max_valnamelen = mykeydata->max_valnamelen; + + if (max_valbufsize != NULL) + *max_valbufsize = mykeydata->max_valdatalen; + + if (max_subkeynamelen != NULL) + *max_subkeynamelen = mykeydata->max_subkeynamelen; + return WERR_OK; } |