From 62f707be6d75c8f71de118ef2b4ddddd36fc4efe Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Thu, 18 Apr 2024 14:07:05 +0200 Subject: [PATCH] Fixed including the machineId in reports --- .../Duplicati.Library.Modules.Builtin.csproj | 3 ++ .../Library/Modules/Builtin/ReportHelper.cs | 42 +++++++++---------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj b/Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj index 440bc2118..012a144ca 100644 --- a/Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj +++ b/Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj @@ -132,6 +132,9 @@ {D63E53E4-A458-4C2F-914D-92F715F58ACF} Duplicati.Library.Common + + Duplicati.Library.AutoUpdater + diff --git a/Duplicati/Library/Modules/Builtin/ReportHelper.cs b/Duplicati/Library/Modules/Builtin/ReportHelper.cs index 8c8b3f263..62b6ec2a4 100644 --- a/Duplicati/Library/Modules/Builtin/ReportHelper.cs +++ b/Duplicati/Library/Modules/Builtin/ReportHelper.cs @@ -40,8 +40,8 @@ namespace Duplicati.Library.Modules.Builtin /// private static readonly string LOGTAG = Logging.Log.LogTagFromType(); - /// - /// The salt used for calculating a backup Id from the remote URL + /// + /// The salt used for calculating a backup Id from the remote URL /// private const string SALT = "DUPL"; @@ -313,21 +313,21 @@ namespace Duplicati.Library.Modules.Builtin if (input.IndexOf("%LOCALPATH%", StringComparison.OrdinalIgnoreCase) >= 0 && m_localpath != null) extra["LocalPath"] = string.Join(System.IO.Path.PathSeparator.ToString(), m_localpath); if (input.IndexOf("%PARSEDRESULT%", StringComparison.OrdinalIgnoreCase) >= 0) - extra["ParsedResult"] = m_parsedresultlevel; - - // If the options contains the key, it is captured by the loop over m_options - // so we only patch it in case it is missing - - if (input.IndexOf("%machine-id%", StringComparison.OrdinalIgnoreCase) >= 0) - { - if (!m_options.ContainsKey("machine-id")) - extra["machine-id"] = ""; + extra["ParsedResult"] = m_parsedresultlevel; + + // If the options contains the key, it is captured by the loop over m_options + // so we only patch it in case it is missing + + if (input.IndexOf("%machine-id%", StringComparison.OrdinalIgnoreCase) >= 0) + { + if (!m_options.ContainsKey("machine-id")) + extra["machine-id"] = Library.AutoUpdater.UpdaterManager.InstallID; } - - if (input.IndexOf("%backup-id%", StringComparison.OrdinalIgnoreCase) >= 0) - { - if (!m_options.ContainsKey("backup-id")) - extra["backup-id"] = Library.Utility.Utility.ByteArrayAsHexString(Library.Utility.Utility.RepeatedHashWithSalt(m_remoteurl, SALT)); + + if (input.IndexOf("%backup-id%", StringComparison.OrdinalIgnoreCase) >= 0) + { + if (!m_options.ContainsKey("backup-id")) + extra["backup-id"] = Library.Utility.Utility.ByteArrayAsHexString(Library.Utility.Utility.RepeatedHashWithSalt(m_remoteurl, SALT)); } if (input.IndexOf("%backup-name%", StringComparison.OrdinalIgnoreCase) >= 0) @@ -363,13 +363,13 @@ namespace Duplicati.Library.Modules.Builtin input = Regex.Replace(input, "\\%" + kv.Key + "\\%", kv.Value ?? "", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); if (!m_options.ContainsKey("backup-name")) - input = Regex.Replace(input, "\\%backup-name\\%", System.IO.Path.GetFileNameWithoutExtension(Duplicati.Library.Utility.Utility.getEntryAssembly().Location) ?? "", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); - - if (!m_options.ContainsKey("backup-id")) - input = Regex.Replace(input, "\\%backup-id\\%", Library.Utility.Utility.ByteArrayAsHexString(Library.Utility.Utility.RepeatedHashWithSalt(m_remoteurl, SALT)), RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); + input = Regex.Replace(input, "\\%backup-name\\%", System.IO.Path.GetFileNameWithoutExtension(Duplicati.Library.Utility.Utility.getEntryAssembly().Location) ?? "", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); + + if (!m_options.ContainsKey("backup-id")) + input = Regex.Replace(input, "\\%backup-id\\%", Library.Utility.Utility.ByteArrayAsHexString(Library.Utility.Utility.RepeatedHashWithSalt(m_remoteurl, SALT)), RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); if (!m_options.ContainsKey("machine-id")) - input = Regex.Replace(input, "\\%machine-id\\%", "", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); + input = Regex.Replace(input, "\\%machine-id\\%", Library.AutoUpdater.UpdaterManager.InstallID, RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); input = Regex.Replace(input, "\\%[^\\%]+\\%", ""); return input;