From 7c55df81e240478cae9a7e567de02848cbc05259 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 8 Apr 2018 16:27:15 -0700 Subject: Simplify retrieval of IS_FIRST_RUN setting. The previous implementation: 1. Assumes that the relevant key exists in the Dictionary. 2. Returns true if the value is null, empty or whitespace, or unparsable. Otherwise, it returns the parsed value. This simplifies the code while capturing the same logic. --- Duplicati/Server/Database/ServerSettings.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Duplicati/Server/Database/ServerSettings.cs b/Duplicati/Server/Database/ServerSettings.cs index 2ba5d3716..d390a4f9e 100644 --- a/Duplicati/Server/Database/ServerSettings.cs +++ b/Duplicati/Server/Database/ServerSettings.cs @@ -188,10 +188,6 @@ namespace Duplicati.Server.Database { get { - var tp = m_values[CONST.IS_FIRST_RUN]; - if (string.IsNullOrEmpty(tp)) - return true; - return Duplicati.Library.Utility.Utility.ParseBoolOption(m_values, CONST.IS_FIRST_RUN); } set -- cgit v1.2.3 From 6953ffe710cf3332accd718b77a695504585d1dc Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 8 Apr 2018 16:34:58 -0700 Subject: Simplify retrieval of HAS_ASKED_FOR_PASSWORD_PROTECTION setting. The previous implementation: 1. Assumes that the relevant key exists in the Dictionary. 2. Returns true if the value is null, empty or whitespace, or unparsable. Otherwise, it returns the parsed value. This simplifies the code while capturing the same logic. --- Duplicati/Server/Database/ServerSettings.cs | 30 +++++++++++++---------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/Duplicati/Server/Database/ServerSettings.cs b/Duplicati/Server/Database/ServerSettings.cs index d390a4f9e..f38409d10 100644 --- a/Duplicati/Server/Database/ServerSettings.cs +++ b/Duplicati/Server/Database/ServerSettings.cs @@ -198,23 +198,19 @@ namespace Duplicati.Server.Database } } - public bool HasAskedForPasswordProtection - { - get - { - var tp = m_values[CONST.HAS_ASKED_FOR_PASSWORD_PROTECTION]; - if (string.IsNullOrEmpty(tp)) - return true; - - return Duplicati.Library.Utility.Utility.ParseBoolOption(m_values, CONST.HAS_ASKED_FOR_PASSWORD_PROTECTION); - } - set - { - lock (m_connection.m_lock) - m_values[CONST.HAS_ASKED_FOR_PASSWORD_PROTECTION] = value.ToString(); - SaveSettings(); - } - } + public bool HasAskedForPasswordProtection + { + get + { + return Duplicati.Library.Utility.Utility.ParseBoolOption(m_values, CONST.HAS_ASKED_FOR_PASSWORD_PROTECTION); + } + set + { + lock (m_connection.m_lock) + m_values[CONST.HAS_ASKED_FOR_PASSWORD_PROTECTION] = value.ToString(); + SaveSettings(); + } + } public bool UnackedError { -- cgit v1.2.3 From b50b02a59bec305e6a743f1172041e476908c85d Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 8 Apr 2018 16:36:44 -0700 Subject: Fix retrieval of UNACKED_ERROR and UNACKED_WARNING settings. The previous implementation returned true for null, empty or whitespace, or unparsable values. A default value of false seems more appropriate for these settings. In particular, if no warning or error has occurred yet (e.g., upon first installation), these properties should return false. This addresses issue #3126. --- Duplicati/Server/Database/ServerSettings.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Duplicati/Server/Database/ServerSettings.cs b/Duplicati/Server/Database/ServerSettings.cs index f38409d10..d0f294d6d 100644 --- a/Duplicati/Server/Database/ServerSettings.cs +++ b/Duplicati/Server/Database/ServerSettings.cs @@ -212,11 +212,11 @@ namespace Duplicati.Server.Database } } - public bool UnackedError + public bool UnackedError { get { - return Duplicati.Library.Utility.Utility.ParseBoolOption(m_values, CONST.UNACKED_ERROR); + return Duplicati.Library.Utility.Utility.ParseBool(m_values[CONST.UNACKED_ERROR], false); } set { @@ -230,7 +230,7 @@ namespace Duplicati.Server.Database { get { - return Duplicati.Library.Utility.Utility.ParseBoolOption(m_values, CONST.UNACKED_WARNING); + return Duplicati.Library.Utility.Utility.ParseBool(m_values[CONST.UNACKED_WARNING], false); } set { @@ -239,6 +239,7 @@ namespace Duplicati.Server.Database SaveSettings(); } } + public bool ServerPortChanged { get -- cgit v1.2.3 From c15e4b17b60919920a07f023aa449e545b45a72c Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 8 Apr 2018 16:42:46 -0700 Subject: Fix retrieval of SERVER_PORT_CHANGED setting. The previous implementation returned true for null, empty or whitespace, or unparsable values. A default value of false seems more appropriate for this setting. Since the ServerSettings constructor initializes the m_values Dictionary with keys from the CONST class, we can assume that the SERVER_PORT_CHANGED key exists. --- Duplicati/Server/Database/ServerSettings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Duplicati/Server/Database/ServerSettings.cs b/Duplicati/Server/Database/ServerSettings.cs index d0f294d6d..89895d4f2 100644 --- a/Duplicati/Server/Database/ServerSettings.cs +++ b/Duplicati/Server/Database/ServerSettings.cs @@ -244,7 +244,7 @@ namespace Duplicati.Server.Database { get { - return Duplicati.Library.Utility.Utility.ParseBoolOption(m_values, CONST.SERVER_PORT_CHANGED); + return Duplicati.Library.Utility.Utility.ParseBool(m_values[CONST.SERVER_PORT_CHANGED], false); } set { -- cgit v1.2.3 From e6587a2c6f60528121bf6c286a9debe9e8705427 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Thu, 12 Apr 2018 19:19:32 -0700 Subject: Fix retrieval of HAS_FIXED_INVALID_BACKUPID setting. The previous implementation returned false for null or empty or whitespace values, and true for unparsable values. A default value of false seems more appropriate for these cases. --- Duplicati/Server/Database/ServerSettings.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Duplicati/Server/Database/ServerSettings.cs b/Duplicati/Server/Database/ServerSettings.cs index 89895d4f2..bafb09355 100644 --- a/Duplicati/Server/Database/ServerSettings.cs +++ b/Duplicati/Server/Database/ServerSettings.cs @@ -528,10 +528,7 @@ namespace Duplicati.Server.Database { get { - if (m_values.ContainsKey(CONST.HAS_FIXED_INVALID_BACKUPID) && string.IsNullOrWhiteSpace(m_values[CONST.HAS_FIXED_INVALID_BACKUPID])) - return false; - else - return Duplicati.Library.Utility.Utility.ParseBoolOption(m_values, CONST.HAS_FIXED_INVALID_BACKUPID); + return Duplicati.Library.Utility.Utility.ParseBool(m_values[CONST.HAS_FIXED_INVALID_BACKUPID], false); } set { -- cgit v1.2.3