diff options
-rw-r--r-- | src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/ManagerServer.cs | 11 |
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); |