diff options
author | Jeremy Allison <jra@samba.org> | 1998-04-01 19:12:35 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-04-01 19:12:35 +0000 |
commit | c6db9717f66944a1321fa4093c0b136963785c0e (patch) | |
tree | 8a23d2f17fafaac4a03bd9eb01e48c9d21f18325 /source3/rpc_server | |
parent | 10fe54befa10b283269001fdf779b9938c9a3a2c (diff) | |
download | samba-c6db9717f66944a1321fa4093c0b136963785c0e.tar.gz samba-c6db9717f66944a1321fa4093c0b136963785c0e.tar.bz2 samba-c6db9717f66944a1321fa4093c0b136963785c0e.zip |
Rolling back machine password change code - this doesn't work (yet).
Jeremy.
(This used to be commit 66affb3dc301d71565d789c06f105da3bb1d65b3)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_netlog.c | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/source3/rpc_server/srv_netlog.c b/source3/rpc_server/srv_netlog.c index cb3616e4af..d7a1b9e421 100644 --- a/source3/rpc_server/srv_netlog.c +++ b/source3/rpc_server/srv_netlog.c @@ -367,9 +367,11 @@ static void api_net_srv_pwset( int uid, NET_Q_SRV_PWSET q_a; uint32 status = NT_STATUS_WRONG_PASSWORD|0xC0000000; DOM_CRED srv_cred; - pstring mach_acct; +#ifdef ALLOW_SRV_PWSET + pstring mach_acct; struct smb_passwd *smb_pass; BOOL ret; +#endif user_struct *vuser; if ((vuser = get_valid_user_struct(uid)) == NULL) return; @@ -385,6 +387,8 @@ static void api_net_srv_pwset( int uid, DEBUG(5,("api_net_srv_pwset: %d\n", __LINE__)); +#ifdef ALLOW_SRV_PWSET + pstrcpy(mach_acct, unistrn2(q_a.clnt_id.login.uni_acct_name.buffer, q_a.clnt_id.login.uni_acct_name.uni_str_len)); @@ -397,26 +401,33 @@ static void api_net_srv_pwset( int uid, if (smb_pass != NULL) { unsigned char pwd[16]; + uint8 mode = 2; memcpy(pwd, q_a.pwd, 16); - /* lies! nt and lm passwords are _not_ the same: don't care */ - smb_pass->smb_passwd = pwd; - smb_pass->smb_nt_passwd = pwd; - smb_pass->acct_ctrl = ACB_WSTRUST; - - become_root(True); - ret = mod_smbpwd_entry(smb_pass); - unbecome_root(True); - - if (ret) + if (obfuscate_pwd(pwd, vuser->dc.sess_key, mode)) { - /* hooray! */ - status = 0x0; + /* lies! nt and lm passwords are _not_ the same: don't care */ + smb_pass->smb_passwd = pwd; + smb_pass->smb_nt_passwd = pwd; + smb_pass->acct_ctrl = ACB_WSTRUST; + + become_root(True); + ret = mod_smbpwd_entry(smb_pass); + unbecome_root(True); + + if (ret) + { + /* hooray! */ + status = 0x0; + } } } DEBUG(5,("api_net_srv_pwset: %d\n", __LINE__)); +#else + DEBUG(5,("api_net_srv_pwset: server password set being denied\n")); +#endif } else |