From d953fa9179291140775fce259f923f1b3bda7e01 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Thu, 10 Sep 2020 07:07:25 -0600 Subject: [PATCH] Ask the server for known upgrades as a last resource (for all downloads) --- Wabbajack.Lib/Downloaders/AbstractDownloadState.cs | 2 +- Wabbajack.Lib/Downloaders/DownloadDispatcher.cs | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Wabbajack.Lib/Downloaders/AbstractDownloadState.cs b/Wabbajack.Lib/Downloaders/AbstractDownloadState.cs index 8c4c0441..f3954c40 100644 --- a/Wabbajack.Lib/Downloaders/AbstractDownloadState.cs +++ b/Wabbajack.Lib/Downloaders/AbstractDownloadState.cs @@ -101,7 +101,7 @@ namespace Wabbajack.Lib.Downloaders return string.Join("\n", GetMetaIni()); } - public async Task<(Archive? Archive, TempFile NewFile)> ServerFindUpgrade(Archive a) + public static async Task<(Archive? Archive, TempFile NewFile)> ServerFindUpgrade(Archive a) { var alternatives = await ClientAPI.GetModUpgrades(a.Hash); if (alternatives == default) diff --git a/Wabbajack.Lib/Downloaders/DownloadDispatcher.cs b/Wabbajack.Lib/Downloaders/DownloadDispatcher.cs index 7bc1aa2b..438d8002 100644 --- a/Wabbajack.Lib/Downloaders/DownloadDispatcher.cs +++ b/Wabbajack.Lib/Downloaders/DownloadDispatcher.cs @@ -126,10 +126,13 @@ namespace Wabbajack.Lib.Downloaders var result = await FindUpgrade(archive); if (result == default) { - Utils.Log( - $"No solution for broken download {archive.Name} {archive.State.PrimaryKeyString} could be found"); - return DownloadResult.Failure; - + result = await AbstractDownloadState.ServerFindUpgrade(archive); + if (result == default) + { + Utils.Log( + $"No solution for broken download {archive.Name} {archive.State.PrimaryKeyString} could be found"); + return DownloadResult.Failure; + } } Utils.Log($"Looking for patch for {archive.Name} ({(long)archive.Hash} {archive.Hash.ToHex()} -> {(long)result.Archive!.Hash} {result.Archive!.Hash.ToHex()})");