From 4b7edf388ca37568568c345feadabe0a35691467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20G=C3=B6ls?= <6608231+Abrynos@users.noreply.github.com> Date: Fri, 23 Jul 2021 16:54:20 +0200 Subject: [PATCH] Fix GlobalConfig update via IPC removing IPCPassword (#2379) --- .../IPC/Controllers/Api/ASFController.cs | 4 ++++ ArchiSteamFarm/Storage/GlobalConfig.cs | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ArchiSteamFarm/IPC/Controllers/Api/ASFController.cs b/ArchiSteamFarm/IPC/Controllers/Api/ASFController.cs index 6d8b4835f..593c1d75e 100644 --- a/ArchiSteamFarm/IPC/Controllers/Api/ASFController.cs +++ b/ArchiSteamFarm/IPC/Controllers/Api/ASFController.cs @@ -121,6 +121,10 @@ namespace ArchiSteamFarm.IPC.Controllers.Api { request.GlobalConfig.Saving = true; + if (!request.GlobalConfig.IsIPCPasswordSet && ASF.GlobalConfig.IsIPCPasswordSet) { + request.GlobalConfig.IPCPassword = ASF.GlobalConfig.IPCPassword; + } + if (!request.GlobalConfig.IsWebProxyPasswordSet && ASF.GlobalConfig.IsWebProxyPasswordSet) { request.GlobalConfig.WebProxyPassword = ASF.GlobalConfig.WebProxyPassword; } diff --git a/ArchiSteamFarm/Storage/GlobalConfig.cs b/ArchiSteamFarm/Storage/GlobalConfig.cs index fac1f616c..f928f111e 100644 --- a/ArchiSteamFarm/Storage/GlobalConfig.cs +++ b/ArchiSteamFarm/Storage/GlobalConfig.cs @@ -221,9 +221,6 @@ namespace ArchiSteamFarm.Storage { [JsonProperty(Required = Required.DisallowNull)] public bool IPC { get; private set; } = DefaultIPC; - [JsonProperty] - public string? IPCPassword { get; private set; } = DefaultIPCPassword; - [JsonProperty(Required = Required.DisallowNull)] public ArchiCryptoHelper.EHashingMethod IPCPasswordFormat { get; private set; } = DefaultIPCPasswordFormat; @@ -281,7 +278,20 @@ namespace ArchiSteamFarm.Storage { set; } + [JsonProperty] + public string? IPCPassword { + get => BackingIPCPassword; + + set { + IsIPCPasswordSet = true; + BackingIPCPassword = value; + } + } + + internal bool IsIPCPasswordSet { get; private set; } + internal bool IsWebProxyPasswordSet { get; private set; } + internal bool Saving { get; set; } [JsonProperty] @@ -294,6 +304,8 @@ namespace ArchiSteamFarm.Storage { } } + private string? BackingIPCPassword = DefaultIPCPassword; + private WebProxy? BackingWebProxy; private string? BackingWebProxyPassword = DefaultWebProxyPassword;