1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

libgpo: add gp_inifile_init_context_direct()

This varient ignores the group policy flags and does not try to find the right
unix path.

Guenther

Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
Günther Deschner 2016-09-11 12:48:14 +02:00 committed by Andreas Schneider
parent 90deb9f04c
commit 5c16dfe325
2 changed files with 56 additions and 1 deletions

View File

@ -272,6 +272,59 @@ NTSTATUS gp_inifile_init_context(TALLOC_CTX *mem_ctx,
return status;
}
/****************************************************************
****************************************************************/
NTSTATUS gp_inifile_init_context_direct(TALLOC_CTX *mem_ctx,
const char *unix_path,
struct gp_inifile_context **pgp_ctx)
{
struct gp_inifile_context *gp_ctx = NULL;
NTSTATUS status;
int rv;
char *tmp_filename = NULL;
if (unix_path == NULL || pgp_ctx == NULL) {
return NT_STATUS_INVALID_PARAMETER;
}
gp_ctx = talloc_zero(mem_ctx, struct gp_inifile_context);
if (gp_ctx == NULL) {
return NT_STATUS_NO_MEMORY;
}
status = convert_file_from_ucs2(mem_ctx, unix_path,
&tmp_filename);
if (!NT_STATUS_IS_OK(status)) {
goto failed;
}
rv = pm_process(tmp_filename,
change_section,
store_keyval_pair,
gp_ctx);
if (rv != 0) {
return NT_STATUS_NO_SUCH_FILE;
}
gp_ctx->generated_filename = tmp_filename;
gp_ctx->mem_ctx = mem_ctx;
*pgp_ctx = gp_ctx;
return NT_STATUS_OK;
failed:
DEBUG(1,("gp_inifile_init_context_direct failed: %s\n",
nt_errstr(status)));
talloc_free(gp_ctx);
return status;
}
/****************************************************************
parse the local gpt.ini file
****************************************************************/

View File

@ -35,7 +35,9 @@ struct gp_inifile_context {
NTSTATUS gp_inifile_init_context(TALLOC_CTX *mem_ctx, uint32_t flags,
const char *unix_path, const char *suffix,
struct gp_inifile_context **ctx_ret);
NTSTATUS gp_inifile_init_context_direct(TALLOC_CTX *mem_ctx,
const char *unix_path,
struct gp_inifile_context **ctx_ret);
NTSTATUS parse_gpt_ini(TALLOC_CTX *ctx,
const char *filename,
uint32_t *version,