From b9064bbfda50cd37f6f0c97df1f23bd9aca0d71e Mon Sep 17 00:00:00 2001 From: JustArchi Date: Sun, 6 Mar 2016 21:49:34 +0100 Subject: [PATCH] Fix awaiting null tasks, closes #128 --- ArchiSteamFarm/ArchiHandler.cs | 11 +++++++++-- ArchiSteamFarm/Bot.cs | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ArchiSteamFarm/ArchiHandler.cs b/ArchiSteamFarm/ArchiHandler.cs index 57b67711a..68582db1d 100644 --- a/ArchiSteamFarm/ArchiHandler.cs +++ b/ArchiSteamFarm/ArchiHandler.cs @@ -24,9 +24,11 @@ using SteamKit2; using SteamKit2.Internal; +using System; using System.Collections.Generic; using System.IO; using System.Net; +using System.Threading.Tasks; namespace ArchiSteamFarm { internal sealed class ArchiHandler : ClientMsgHandler { @@ -216,7 +218,7 @@ namespace ArchiSteamFarm { Client.Send(request); } - internal AsyncJob RedeemKey(string key) { + internal async Task RedeemKey(string key) { if (string.IsNullOrEmpty(key) || !Client.IsConnected) { return null; } @@ -228,7 +230,12 @@ namespace ArchiSteamFarm { request.Body.key = key; Client.Send(request); - return new AsyncJob(Client, request.SourceJobID); + try { + return await new AsyncJob(Client, request.SourceJobID); + } catch (Exception e) { + Logging.LogGenericException(e); + return null; + } } /* diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index b1552c014..21957af1e 100755 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -524,7 +524,7 @@ namespace ArchiSteamFarm { ArchiHandler.PurchaseResponseCallback result; try { - result = await currentBot.ArchiHandler.RedeemKey(key); + result = await currentBot.ArchiHandler.RedeemKey(key).ConfigureAwait(false); } catch (Exception e) { Logging.LogGenericException(e, currentBot.BotName); break; @@ -575,7 +575,7 @@ namespace ArchiSteamFarm { ArchiHandler.PurchaseResponseCallback otherResult; try { - otherResult = await bot.ArchiHandler.RedeemKey(key); + otherResult = await bot.ArchiHandler.RedeemKey(key).ConfigureAwait(false); } catch (Exception e) { Logging.LogGenericException(e, bot.BotName); break; // We're done with this key