aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/ManagerServer.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/ManagerServer.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/ManagerServer.cs
index ec7fa5c4..75bad0e3 100644
--- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/ManagerServer.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/ManagerServer.cs
@@ -22,6 +22,9 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService
private readonly UserId _userId;
#pragma warning restore IDE0052
+ private byte[] _cachedTokenData;
+ private DateTime _cachedTokenExpiry;
+
public ManagerServer(UserId userId)
{
_userId = userId;
@@ -144,7 +147,13 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService
}
*/
- byte[] tokenData = Encoding.ASCII.GetBytes(GenerateIdToken());
+ if (_cachedTokenData == null || DateTime.UtcNow > _cachedTokenExpiry)
+ {
+ _cachedTokenExpiry = DateTime.UtcNow + TimeSpan.FromHours(3);
+ _cachedTokenData = Encoding.ASCII.GetBytes(GenerateIdToken());
+ }
+
+ byte[] tokenData = _cachedTokenData;
context.Memory.Write(bufferPosition, tokenData);
context.ResponseData.Write(tokenData.Length);