diff options
Diffstat (limited to 'source3/passdb/smbpassfile.c')
-rw-r--r-- | source3/passdb/smbpassfile.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/source3/passdb/smbpassfile.c b/source3/passdb/smbpassfile.c index 83b0e7ef6b..d2a7b0bdf9 100644 --- a/source3/passdb/smbpassfile.c +++ b/source3/passdb/smbpassfile.c @@ -43,7 +43,7 @@ static void get_trust_account_file_name( char *domain, char *name, char *mac_fil if ((int)(sizeof(pstring) - mac_file_len - strlen(domain) - strlen(name) - 6) < 0) { - DEBUG(0,("trust_password_lock: path %s too long to add trust details.\n", + DEBUG(0,("get_trust_account_file_name: path %s too long to add trust details.\n", mac_file)); return; } @@ -268,3 +268,36 @@ trust %s in domain %s.\n", myname, domain )); } return True; } + +/********************************************************* +record Trust Account password. +**********************************************************/ +BOOL create_trust_account_file(char *domain, char *name, uchar pass[16]) +{ + /* + * Create the machine account password file. + */ + + if (!trust_password_lock( domain, name, True)) + { + DEBUG(0,("unable to open the trust account password file for \ +account %s in domain %s.\n", name, domain)); + return False; + } + + /* + * Write the old machine account password. + */ + + if (!set_trust_account_password( pass)) + { + DEBUG(0,("unable to write the trust account password for \ +%s in domain %s.\n", name, domain)); + trust_password_unlock(); + return False; + } + + trust_password_unlock(); + + return True; +} |