summaryrefslogtreecommitdiff
path: root/source3/libads/krb5_setpw.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2002-09-28 14:42:32 +0000
committerAndrew Bartlett <abartlet@samba.org>2002-09-28 14:42:32 +0000
commit4e73790e3a20be5c7bf8fa3b62d9d41ba246b59c (patch)
treee481224eb3a0b308b6069b283c4cb17b1bdb4e74 /source3/libads/krb5_setpw.c
parentb1361525c69de00f79246c236ca1d2f0fca6c0e6 (diff)
downloadsamba-4e73790e3a20be5c7bf8fa3b62d9d41ba246b59c.tar.gz
samba-4e73790e3a20be5c7bf8fa3b62d9d41ba246b59c.tar.bz2
samba-4e73790e3a20be5c7bf8fa3b62d9d41ba246b59c.zip
Try to compile as much as possible with only ldap, but not kerberos.
(This used to be commit 9615ab10c006d8027f6a8b7dd3770eb77304dbdc)
Diffstat (limited to 'source3/libads/krb5_setpw.c')
-rw-r--r--source3/libads/krb5_setpw.c31
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