From 93a6b9da0f4cb0fb4764af4a8c488c6d06c1dff0 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 15 May 2017 07:17:00 +0200 Subject: [PATCH] s4:auth: split out a samba_server_gensec_start_settings() helper function Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- source4/auth/samba_server_gensec.c | 34 ++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/source4/auth/samba_server_gensec.c b/source4/auth/samba_server_gensec.c index 7b09aa78d7e..af26f9972fa 100644 --- a/source4/auth/samba_server_gensec.c +++ b/source4/auth/samba_server_gensec.c @@ -27,10 +27,11 @@ #include "auth/gensec/gensec.h" #include "param/param.h" -NTSTATUS samba_server_gensec_start(TALLOC_CTX *mem_ctx, +static NTSTATUS samba_server_gensec_start_settings(TALLOC_CTX *mem_ctx, struct tevent_context *event_ctx, struct imessaging_context *msg_ctx, struct loadparm_context *lp_ctx, + struct gensec_settings *settings, struct cli_credentials *server_credentials, const char *target_service, struct gensec_security **gensec_context) @@ -57,7 +58,7 @@ NTSTATUS samba_server_gensec_start(TALLOC_CTX *mem_ctx, } nt_status = gensec_server_start(tmp_ctx, - lpcfg_gensec_settings(mem_ctx, lp_ctx), + settings, auth_context, &gensec_ctx); if (!NT_STATUS_IS_OK(nt_status)) { @@ -75,3 +76,32 @@ NTSTATUS samba_server_gensec_start(TALLOC_CTX *mem_ctx, talloc_free(tmp_ctx); return nt_status; } + +NTSTATUS samba_server_gensec_start(TALLOC_CTX *mem_ctx, + struct tevent_context *event_ctx, + struct imessaging_context *msg_ctx, + struct loadparm_context *lp_ctx, + struct cli_credentials *server_credentials, + const char *target_service, + struct gensec_security **gensec_context) +{ + struct gensec_settings *settings = NULL; + NTSTATUS status; + + settings = lpcfg_gensec_settings(mem_ctx, lp_ctx); + if (settings == NULL) { + return NT_STATUS_NO_MEMORY; + } + status = samba_server_gensec_start_settings(mem_ctx, event_ctx, + msg_ctx, lp_ctx, + settings, server_credentials, + target_service, + gensec_context); + if (!NT_STATUS_IS_OK(status)) { + TALLOC_FREE(settings); + return status; + } + + talloc_reparent(mem_ctx, *gensec_context, settings); + return NT_STATUS_OK; +} -- 2.34.1