s4:samr RPC server - dcesrv_samr_SetUserInfo() - password expiration
[obnox/samba/samba-obnox.git] / source4 / rpc_server / samr / dcesrv_samr.c
index 3826075ebcd08968c12565bb9ff6888a9cd2f5d6..7279fe02f724f1ff6defa3a749b3cbcbe67c260a 100644 (file)
@@ -3510,8 +3510,14 @@ static NTSTATUS dcesrv_samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALL
                }
 
                if (r->in.info->info26.password_expired > 0) {
+                       NTTIME t = 0;
                        struct ldb_message_element *set_el;
-                       if (samdb_msg_add_uint64(sam_ctx, mem_ctx, msg, "pwdLastSet", 0) != LDB_SUCCESS) {
+                       if (r->in.info->info26.password_expired
+                                       == PASS_DONT_CHANGE_AT_NEXT_LOGON) {
+                               unix_to_nt_time(&t, time(NULL));
+                       }
+                       if (samdb_msg_add_uint64(sam_ctx, mem_ctx, msg,
+                                                "pwdLastSet", t) != LDB_SUCCESS) {
                                return NT_STATUS_NO_MEMORY;
                        }
                        set_el = ldb_msg_find_element(msg, "pwdLastSet");