diff options
author | Volker Lendecke <vl@samba.org> | 2021-11-17 12:25:58 +0100 |
---|---|---|
committer | Ralph Boehme <slow@samba.org> | 2021-11-17 17:41:30 +0000 |
commit | 63c80f25da8829a7bd3244afea29c13f699efac1 (patch) | |
tree | c567f17e666d3bc03089e9e60813e393f2d56067 /lib/cmdline | |
parent | d6270525699fbc856b217cf18ece7f1d063b144d (diff) | |
download | samba-63c80f25da8829a7bd3244afea29c13f699efac1.tar.gz |
cmdline: Add a callback to set the machine account details
source3 clients need to work in clustered mode, the default
cli_credentials_set_machine_account() only looks at the local
secrets.tdb file
Bug: https://bugzilla.samba.org/show_bug.cgi?id=14908
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Diffstat (limited to 'lib/cmdline')
-rw-r--r-- | lib/cmdline/cmdline.c | 16 | ||||
-rw-r--r-- | lib/cmdline/cmdline.h | 4 |
2 files changed, 18 insertions, 2 deletions
diff --git a/lib/cmdline/cmdline.c b/lib/cmdline/cmdline.c index 753cec27c3f..33d0c94e3b1 100644 --- a/lib/cmdline/cmdline.c +++ b/lib/cmdline/cmdline.c @@ -30,6 +30,11 @@ static struct cli_credentials *cmdline_creds; static samba_cmdline_load_config cmdline_load_config_fn; static struct samba_cmdline_daemon_cfg cmdline_daemon_cfg; +static NTSTATUS (*cli_credentials_set_machine_account_fn)( + struct cli_credentials *cred, + struct loadparm_context *lp_ctx) = + cli_credentials_set_machine_account; + /* PRIVATE */ bool samba_cmdline_set_talloc_ctx(TALLOC_CTX *mem_ctx) { @@ -122,6 +127,13 @@ struct samba_cmdline_daemon_cfg *samba_cmdline_get_daemon_cfg(void) return &cmdline_daemon_cfg; } +void samba_cmdline_set_machine_account_fn( + NTSTATUS (*fn) (struct cli_credentials *cred, + struct loadparm_context *lp_ctx)) +{ + cli_credentials_set_machine_account_fn = fn; +} + void samba_cmdline_burn(int argc, char *argv[]) { bool found = false; @@ -792,8 +804,8 @@ static void popt_common_credentials_callback(poptContext popt_ctx, if (machine_account_pending) { NTSTATUS status; - status = cli_credentials_set_machine_account(creds, - lp_ctx); + status = cli_credentials_set_machine_account_fn( + creds, lp_ctx); if (!NT_STATUS_IS_OK(status)) { fprintf(stderr, "Failed to set machine account: %s\n", diff --git a/lib/cmdline/cmdline.h b/lib/cmdline/cmdline.h index 1f85da0099e..5cd58c3ddbb 100644 --- a/lib/cmdline/cmdline.h +++ b/lib/cmdline/cmdline.h @@ -131,6 +131,10 @@ struct poptOption *samba_cmdline_get_popt(enum smb_cmdline_popt_options opt); */ struct samba_cmdline_daemon_cfg *samba_cmdline_get_daemon_cfg(void); +void samba_cmdline_set_machine_account_fn( + NTSTATUS (*fn) (struct cli_credentials *cred, + struct loadparm_context *lp_ctx)); + /** * @brief Burn secrets on the command line. * |