From: Stefan Metzmacher Date: Mon, 15 May 2017 05:17:00 +0000 (+0200) Subject: s4:auth: split out a samba_server_gensec_start_settings() helper function X-Git-Tag: ldb-1.1.30~150 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93a6b9da0f4cb0fb4764af4a8c488c6d06c1dff0;p=thirdparty%2Fsamba.git s4:auth: split out a samba_server_gensec_start_settings() helper function Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- 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; +}