1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

s3:registry: add functions to conveniently create registry_values

Pair-Programmed-With: Michael Adam <obnox@samba.org>
This commit is contained in:
Gregor Beck 2012-04-30 10:27:56 +02:00 committed by Michael Adam
parent 35eccd0f53
commit e10ea2b3cd
2 changed files with 65 additions and 0 deletions

View File

@ -26,6 +26,7 @@
#include "registry.h"
#include "reg_api.h"
#include "reg_api_util.h"
#include "libcli/registry/util_reg.h"
/**
* Utility function to open a complete registry path including the hive prefix.
@ -176,3 +177,63 @@ WERROR reg_delete_path(const struct security_token *token,
TALLOC_FREE(hive);
return err;
}
struct registry_value *registry_value_dw(TALLOC_CTX *mem_ctx, uint32_t dw)
{
struct registry_value *ret;
ret = talloc_zero(mem_ctx, struct registry_value);
if (ret == NULL) {
return NULL;
}
ret->data = data_blob_talloc(ret, NULL, sizeof(uint32_t));
if (ret->data.data == NULL) {
talloc_free(ret);
return NULL;
}
ret->type = REG_DWORD;
SIVAL(ret->data.data, 0, dw);
return ret;
}
struct registry_value *registry_value_sz(TALLOC_CTX *mem_ctx, const char *str)
{
struct registry_value *ret;
ret = talloc_zero(mem_ctx, struct registry_value);
if (ret == NULL) {
return NULL;
}
if (!push_reg_sz(ret, &ret->data, str)) {
talloc_free(ret);
return NULL;
}
ret->type = REG_SZ;
return ret;
}
struct registry_value *registry_value_multi_sz(TALLOC_CTX *mem_ctx, const char **str)
{
struct registry_value *ret;
ret = talloc_zero(mem_ctx, struct registry_value);
if (ret == NULL) {
return NULL;
}
if (!push_reg_multi_sz(ret, &ret->data, str)) {
talloc_free(ret);
return NULL;
}
ret->type = REG_MULTI_SZ;
return ret;
}

View File

@ -40,4 +40,8 @@ WERROR reg_create_path(TALLOC_CTX *mem_ctx, const char *orig_path,
WERROR reg_delete_path(const struct security_token *token,
const char *orig_path);
struct registry_value *registry_value_dw(TALLOC_CTX *mem_ctx, uint32_t dw);
struct registry_value *registry_value_sz(TALLOC_CTX *mem_ctx, const char *str);
struct registry_value *registry_value_multi_sz(TALLOC_CTX *mem_ctx, const char **str);
#endif /* _REG_API_UTIL_H */