diff options
author | Gerald Carter <jerry@samba.org> | 2002-10-01 18:26:00 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2002-10-01 18:26:00 +0000 |
commit | f2d1f19a66ebaf9b88d23c0faa2412536cc74cda (patch) | |
tree | 781120ed548c3f38de9d40795a426de525e7865b /source3/libads/krb5_setpw.c | |
parent | 2fb5c7c580a3fff3c7d477b65a1c4852af86433b (diff) | |
download | samba-f2d1f19a66ebaf9b88d23c0faa2412536cc74cda.tar.gz samba-f2d1f19a66ebaf9b88d23c0faa2412536cc74cda.tar.bz2 samba-f2d1f19a66ebaf9b88d23c0faa2412536cc74cda.zip |
syncing up with HEAD. Seems to be a lot of differences creeping in
(i ignored the new SAMBA stuff, but the rest of this looks like it should
have been merged already).
(This used to be commit 3de09e5cf1f667e410ee8b9516a956860ce7290f)
Diffstat (limited to 'source3/libads/krb5_setpw.c')
-rw-r--r-- | source3/libads/krb5_setpw.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/source3/libads/krb5_setpw.c b/source3/libads/krb5_setpw.c index a49b6cbe3b..8079c0953f 100644 --- a/source3/libads/krb5_setpw.c +++ b/source3/libads/krb5_setpw.c @@ -471,4 +471,35 @@ ADS_STATUS kerberos_set_password(const char *kpasswd_server, } +/** + * Set the machine account password + * @param ads connection to ads server + * @param hostname machine whose password is being set + * @param password new password + * @return status of password change + **/ +ADS_STATUS ads_set_machine_password(ADS_STRUCT *ads, + const char *hostname, + const char *password) +{ + ADS_STATUS status; + char *host = strdup(hostname); + char *principal; + + strlower(host); + + /* + we need to use the '$' form of the name here, as otherwise the + server might end up setting the password for a user instead + */ + asprintf(&principal, "%s$@%s", host, ads->auth.realm); + + status = krb5_set_password(ads->auth.kdc_server, principal, password, ads->auth.time_offset); + + free(host); + free(principal); + + return status; +} + #endif |