From: Andreas Schneider Date: Fri, 4 Sep 2020 10:21:21 +0000 (+0200) Subject: auth:creds: Add cli_credentials_init_server() X-Git-Tag: talloc-2.3.2~639 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c00bea2aefdcc69608dffdafa7ce581d31f9354;p=thirdparty%2Fsamba.git auth:creds: Add cli_credentials_init_server() Signed-off-by: Andreas Schneider Reviewed-by: Stefan Metzmacher --- diff --git a/auth/credentials/credentials.c b/auth/credentials/credentials.c index 9168b92d3ec..77c35dd104b 100644 --- a/auth/credentials/credentials.c +++ b/auth/credentials/credentials.c @@ -56,6 +56,31 @@ _PUBLIC_ struct cli_credentials *cli_credentials_init(TALLOC_CTX *mem_ctx) return cred; } +_PUBLIC_ +struct cli_credentials *cli_credentials_init_server(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx) +{ + struct cli_credentials *server_creds = NULL; + NTSTATUS status; + + server_creds = cli_credentials_init(mem_ctx); + if (server_creds == NULL) { + return NULL; + } + + cli_credentials_set_conf(server_creds, lp_ctx); + + status = cli_credentials_set_machine_account(server_creds, lp_ctx); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(1, ("Failed to obtain server credentials: %s\n", + nt_errstr(status))); + TALLOC_FREE(server_creds); + return NULL; + } + + return server_creds; +} + _PUBLIC_ void cli_credentials_set_callback_data(struct cli_credentials *cred, void *callback_data) { diff --git a/auth/credentials/credentials.h b/auth/credentials/credentials.h index 1a3e611fee8..4c140615751 100644 --- a/auth/credentials/credentials.h +++ b/auth/credentials/credentials.h @@ -76,6 +76,8 @@ bool cli_credentials_set_workstation(struct cli_credentials *cred, enum credentials_obtained obtained); bool cli_credentials_is_anonymous(struct cli_credentials *cred); struct cli_credentials *cli_credentials_init(TALLOC_CTX *mem_ctx); +struct cli_credentials *cli_credentials_init_server(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx); void cli_credentials_set_anonymous(struct cli_credentials *cred); bool cli_credentials_wrong_password(struct cli_credentials *cred); const char *cli_credentials_get_password(struct cli_credentials *cred);