aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 ec7fa5c4f..75bad0e3f 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
22 private readonly UserId _userId; 22 private readonly UserId _userId;
23#pragma warning restore IDE0052 23#pragma warning restore IDE0052
24 24
25 private byte[] _cachedTokenData;
26 private DateTime _cachedTokenExpiry;
27
25 public ManagerServer(UserId userId) 28 public ManagerServer(UserId userId)
26 { 29 {
27 _userId = userId; 30 _userId = userId;
@@ -144,7 +147,13 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService
144 } 147 }
145 */ 148 */
146 149
147 byte[] tokenData = Encoding.ASCII.GetBytes(GenerateIdToken()); 150 if (_cachedTokenData == null || DateTime.UtcNow > _cachedTokenExpiry)
151 {
152 _cachedTokenExpiry = DateTime.UtcNow + TimeSpan.FromHours(3);
153 _cachedTokenData = Encoding.ASCII.GetBytes(GenerateIdToken());
154 }
155
156 byte[] tokenData = _cachedTokenData;
148 157
149 context.Memory.Write(bufferPosition, tokenData); 158 context.Memory.Write(bufferPosition, tokenData);
150 context.ResponseData.Write(tokenData.Length); 159 context.ResponseData.Write(tokenData.Length);