added SAMR_USER_INFO_24 info level to samr_set_userinfo. this is used
[samba.git] / source3 / rpc_server / srv_samr.c
index 2437163f2b0c9b1a362794e7203950c0c3add7d9..b0fc64a2e7d360c901019e83480d1f84fc355826 100644 (file)
@@ -1943,6 +1943,27 @@ static void samr_reply_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u,
 
 }
 
+/*******************************************************************
+ set_user_info_24
+ ********************************************************************/
+static BOOL set_user_info_24(SAM_USER_INFO_24 *id24, uint32 rid)
+{
+       static struct sam_passwd *pwd;
+       fstring new_pw;
+       if (!decode_pw_buffer(id24->pass, new_pw, sizeof(new_pw), True))
+       {
+               return False;
+       }
+#ifdef DEBUG_PASSWORD
+       DEBUG(0,("New Password: %s\n", new_pw));
+#endif
+#if 0
+       return mod_sam21pwd_entry(&pwd, True);
+#else
+       return True;
+#endif
+}
+
 /*******************************************************************
  set_user_info_23
  ********************************************************************/
@@ -2007,6 +2028,15 @@ static void samr_reply_set_userinfo(SAMR_Q_SET_USERINFO *q_u,
        {
                switch (q_u->switch_value)
                {
+                       case 24:
+                       {
+                               SAM_USER_INFO_24 *id24 = q_u->info.id24;
+                               nt_lm_owf_gen("test", nt_pwd, lm_pwd);
+                               SamOEMhash(id24->pass, user_sess_key, True);
+                               status = set_user_info_24(id24, rid) ? 0 : (0xC0000000 | NT_STATUS_ACCESS_DENIED);
+                               break;
+                       }
+
                        case 23:
                        {
                                SAM_USER_INFO_23 *id23 = q_u->info.id23;