diff --git a/ArchiSteamFarm.sln.DotSettings b/ArchiSteamFarm.sln.DotSettings
index fcb376aec..b000d1b2d 100644
--- a/ArchiSteamFarm.sln.DotSettings
+++ b/ArchiSteamFarm.sln.DotSettings
@@ -189,6 +189,7 @@
SUGGESTION
SUGGESTION
SUGGESTION
+ SUGGESTION
SUGGESTION
DO_NOT_SHOW
@@ -241,6 +242,7 @@
WARNING
SUGGESTION
SUGGESTION
+ SUGGESTION
WARNING
WARNING
WARNING
diff --git a/ArchiSteamFarm/Core/ASF.cs b/ArchiSteamFarm/Core/ASF.cs
index 158c9f04c..eaeb33b9f 100644
--- a/ArchiSteamFarm/Core/ASF.cs
+++ b/ArchiSteamFarm/Core/ASF.cs
@@ -887,10 +887,12 @@ public static class ASF {
MemoryStream memoryStream = new(responseBytes);
await using (memoryStream.ConfigureAwait(false)) {
- using ZipArchive zipArchive = new(memoryStream);
+ ZipArchive zipArchive = new(memoryStream);
- if (!await UpdateFromArchive(newVersion, channel.Value, updateOverride, forced, zipArchive).ConfigureAwait(false)) {
- ArchiLogger.LogGenericError(Strings.WarningFailed);
+ await using (zipArchive.ConfigureAwait(false)) {
+ if (!await UpdateFromArchive(newVersion, channel.Value, updateOverride, forced, zipArchive).ConfigureAwait(false)) {
+ ArchiLogger.LogGenericError(Strings.WarningFailed);
+ }
}
}
} catch (Exception e) {
diff --git a/ArchiSteamFarm/Core/Utilities.cs b/ArchiSteamFarm/Core/Utilities.cs
index 8c06b5e7b..3eabc7997 100644
--- a/ArchiSteamFarm/Core/Utilities.cs
+++ b/ArchiSteamFarm/Core/Utilities.cs
@@ -169,18 +169,6 @@ public static class Utilities {
}
}
- [PublicAPI]
- public static bool IsClientErrorCode(this HttpStatusCode statusCode) => statusCode is >= HttpStatusCode.BadRequest and < HttpStatusCode.InternalServerError;
-
- [PublicAPI]
- public static bool IsRedirectionCode(this HttpStatusCode statusCode) => statusCode is >= HttpStatusCode.Ambiguous and < HttpStatusCode.BadRequest;
-
- [PublicAPI]
- public static bool IsServerErrorCode(this HttpStatusCode statusCode) => statusCode is >= HttpStatusCode.InternalServerError and < (HttpStatusCode) 600;
-
- [PublicAPI]
- public static bool IsSuccessCode(this HttpStatusCode statusCode) => statusCode is >= HttpStatusCode.OK and < HttpStatusCode.Ambiguous;
-
[PublicAPI]
public static bool IsValidCdKey(string key) {
ArgumentException.ThrowIfNullOrEmpty(key);
@@ -525,4 +513,18 @@ public static class Utilities {
return prefixes.Any(prefix => !string.IsNullOrEmpty(prefix) && (directory.Length > prefix.Length) && DirectorySeparators.Contains(directory[prefix.Length]) && directory.StartsWith(prefix, StringComparison.Ordinal));
}
+
+ extension(HttpStatusCode statusCode) {
+ [PublicAPI]
+ public bool IsClientErrorCode() => statusCode is >= HttpStatusCode.BadRequest and < HttpStatusCode.InternalServerError;
+
+ [PublicAPI]
+ public bool IsRedirectionCode() => statusCode is >= HttpStatusCode.Ambiguous and < HttpStatusCode.BadRequest;
+
+ [PublicAPI]
+ public bool IsServerErrorCode() => statusCode is >= HttpStatusCode.InternalServerError and < (HttpStatusCode) 600;
+
+ [PublicAPI]
+ public bool IsSuccessCode() => statusCode is >= HttpStatusCode.OK and < HttpStatusCode.Ambiguous;
+ }
}
diff --git a/ArchiSteamFarm/Plugins/PluginsCore.cs b/ArchiSteamFarm/Plugins/PluginsCore.cs
index f2fa7a97c..19ca73c2c 100644
--- a/ArchiSteamFarm/Plugins/PluginsCore.cs
+++ b/ArchiSteamFarm/Plugins/PluginsCore.cs
@@ -891,14 +891,16 @@ public static class PluginsCore {
MemoryStream memoryStream = new(responseBytes);
await using (memoryStream.ConfigureAwait(false)) {
- using ZipArchive zipArchive = new(memoryStream);
+ ZipArchive zipArchive = new(memoryStream);
- await plugin.OnPluginUpdateProceeding().ConfigureAwait(false);
+ await using (zipArchive.ConfigureAwait(false)) {
+ await plugin.OnPluginUpdateProceeding().ConfigureAwait(false);
- if (!await Utilities.UpdateFromArchive(zipArchive, assemblyDirectory).ConfigureAwait(false)) {
- ASF.ArchiLogger.LogGenericError(Strings.WarningFailed);
+ if (!await Utilities.UpdateFromArchive(zipArchive, assemblyDirectory).ConfigureAwait(false)) {
+ ASF.ArchiLogger.LogGenericError(Strings.WarningFailed);
- return false;
+ return false;
+ }
}
}
} catch (Exception e) {