From f09cd8264f3499d18290fb7740d693bc742e1ad4 Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Wed, 4 Jan 2023 16:12:30 +0100 Subject: [PATCH] reverify server existing file hashes --- .../WebAPI/ApIController.Functions.Files.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/MareSynchronos/WebAPI/ApIController.Functions.Files.cs b/MareSynchronos/WebAPI/ApIController.Functions.Files.cs index 2e8bc7d..eb44ddd 100644 --- a/MareSynchronos/WebAPI/ApIController.Functions.Files.cs +++ b/MareSynchronos/WebAPI/ApIController.Functions.Files.cs @@ -18,7 +18,7 @@ namespace MareSynchronos.WebAPI; public partial class ApiController { - private readonly HashSet _verifiedUploadedHashes; + private readonly Dictionary _verifiedUploadedHashes; private int _downloadId = 0; public async void CancelUpload() @@ -224,8 +224,14 @@ public partial class ApiController List unverifiedUploadHashes = new(); foreach (var item in character.FileReplacements.SelectMany(c => c.Value.Where(f => string.IsNullOrEmpty(f.FileSwapPath)).Select(v => v.Hash).Distinct(StringComparer.Ordinal)).Distinct(StringComparer.Ordinal).ToList()) { - if (!_verifiedUploadedHashes.Contains(item)) + if (!_verifiedUploadedHashes.TryGetValue(item, out var verifiedTime)) { + verifiedTime = DateTime.MinValue; + } + + if (verifiedTime < DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10))) + { + Logger.Verbose("Verifying " + item + ", last verified: " + verifiedTime); unverifiedUploadHashes.Add(item); } } @@ -295,7 +301,7 @@ public partial class ApiController foreach (var item in unverifiedUploadHashes) { - _verifiedUploadedHashes.Add(item); + _verifiedUploadedHashes[item] = DateTime.UtcNow; } CurrentUploads.Clear();