mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
s3:libsmb: remove unused trust_pw_find_change_and_store_it()
Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
3c30e19c4a
commit
a8ecebe3e8
@ -974,9 +974,6 @@ void update_trustdom_cache( void );
|
||||
|
||||
/* The following definitions come from libsmb/trusts_util.c */
|
||||
|
||||
NTSTATUS trust_pw_find_change_and_store_it(struct rpc_pipe_client *cli,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
const char *domain) ;
|
||||
struct netlogon_creds_cli_context;
|
||||
struct messaging_context;
|
||||
struct dcerpc_binding_handle;
|
||||
|
@ -36,87 +36,6 @@
|
||||
already setup the connection to the NETLOGON pipe
|
||||
**********************************************************/
|
||||
|
||||
NTSTATUS trust_pw_find_change_and_store_it(struct rpc_pipe_client *cli,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
const char *domain)
|
||||
{
|
||||
unsigned char old_trust_passwd_hash[16];
|
||||
unsigned char new_trust_passwd_hash[16];
|
||||
enum netr_SchannelType sec_channel_type = SEC_CHAN_NULL;
|
||||
const char *account_name;
|
||||
char *new_trust_passwd;
|
||||
NTSTATUS nt_status;
|
||||
|
||||
if (!get_trust_pw_hash(domain, old_trust_passwd_hash, &account_name,
|
||||
&sec_channel_type)) {
|
||||
DEBUG(0, ("could not fetch domain secrets for domain %s!\n", domain));
|
||||
return NT_STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
switch (sec_channel_type) {
|
||||
case SEC_CHAN_WKSTA:
|
||||
case SEC_CHAN_DOMAIN:
|
||||
break;
|
||||
default:
|
||||
return NT_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
/* Create a random machine account password */
|
||||
new_trust_passwd = generate_random_password(mem_ctx,
|
||||
DEFAULT_TRUST_ACCOUNT_PASSWORD_LENGTH,
|
||||
DEFAULT_TRUST_ACCOUNT_PASSWORD_LENGTH);
|
||||
if (new_trust_passwd == NULL) {
|
||||
DEBUG(0, ("generate_random_password failed\n"));
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
E_md4hash(new_trust_passwd, new_trust_passwd_hash);
|
||||
|
||||
nt_status = rpccli_netlogon_set_trust_password(cli, mem_ctx,
|
||||
account_name,
|
||||
old_trust_passwd_hash,
|
||||
new_trust_passwd,
|
||||
new_trust_passwd_hash,
|
||||
sec_channel_type);
|
||||
|
||||
if (NT_STATUS_IS_OK(nt_status)) {
|
||||
DEBUG(3,("%s : trust_pw_change_and_store_it: Changed password.\n",
|
||||
current_timestring(talloc_tos(), False)));
|
||||
/*
|
||||
* Return the result of trying to write the new password
|
||||
* back into the trust account file.
|
||||
*/
|
||||
|
||||
switch (sec_channel_type) {
|
||||
|
||||
case SEC_CHAN_WKSTA:
|
||||
if (!secrets_store_machine_password(new_trust_passwd, domain, sec_channel_type)) {
|
||||
nt_status = NT_STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
break;
|
||||
|
||||
case SEC_CHAN_DOMAIN: {
|
||||
char *pwd;
|
||||
struct dom_sid sid;
|
||||
time_t pass_last_set_time;
|
||||
|
||||
/* we need to get the sid first for the
|
||||
* pdb_set_trusteddom_pw call */
|
||||
|
||||
if (!pdb_get_trusteddom_pw(domain, &pwd, &sid, &pass_last_set_time)) {
|
||||
nt_status = NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE;
|
||||
}
|
||||
if (!pdb_set_trusteddom_pw(domain, new_trust_passwd, &sid)) {
|
||||
nt_status = NT_STATUS_INTERNAL_DB_CORRUPTION;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nt_status;
|
||||
}
|
||||
|
||||
struct trust_pw_change_state {
|
||||
struct g_lock_ctx *g_ctx;
|
||||
char *g_lock_key;
|
||||
|
Loading…
Reference in New Issue
Block a user