diff options
author | Andreas Schneider <asn@samba.org> | 2020-09-04 12:21:21 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2020-09-07 12:02:15 +0000 |
commit | 2c00bea2aefdcc69608dffdafa7ce581d31f9354 (patch) | |
tree | 023a498432abf91143f04c882d1f3118dd0d0214 /auth/credentials | |
parent | 515cffb1f20eacb041ff7b3d43f8a122a82ddfbd (diff) | |
download | samba-2c00bea2aefdcc69608dffdafa7ce581d31f9354.tar.gz |
auth:creds: Add cli_credentials_init_server()
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'auth/credentials')
-rw-r--r-- | auth/credentials/credentials.c | 25 | ||||
-rw-r--r-- | auth/credentials/credentials.h | 2 |
2 files changed, 27 insertions, 0 deletions
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); |