From 3bac3dbae34ff2cc7b0b1ac76ca9fb1be764e28a Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Sat, 9 Nov 2024 23:00:20 +0100 Subject: [PATCH] Added package type ids when sending usage reports to track individual package type usage. Added package type id to download checker header for future use. --- Duplicati/Library/AutoUpdater/UpdaterManager.cs | 1 + Duplicati/Library/UsageReporter/ReportSet.cs | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Duplicati/Library/AutoUpdater/UpdaterManager.cs b/Duplicati/Library/AutoUpdater/UpdaterManager.cs index e626fd984..8c16d53fd 100644 --- a/Duplicati/Library/AutoUpdater/UpdaterManager.cs +++ b/Duplicati/Library/AutoUpdater/UpdaterManager.cs @@ -338,6 +338,7 @@ namespace Duplicati.Library.AutoUpdater request.Headers.Add(System.Net.HttpRequestHeader.UserAgent.ToString(), string.Format("{0} v{1}{2}", APPNAME, SelfVersion.Version, string.IsNullOrWhiteSpace(InstallID) ? "" : " -" + InstallID)); request.Headers.Add("X-Install-ID", InstallID); + request.Headers.Add("X-Package-Type-ID", PackageTypeId); using var timeoutToken = new CancellationTokenSource(); timeoutToken.CancelAfter(TimeSpan.FromSeconds(SHORT_OPERATION_TIMEOUT_SECONDS)); diff --git a/Duplicati/Library/UsageReporter/ReportSet.cs b/Duplicati/Library/UsageReporter/ReportSet.cs index 85955bd5c..83cbb925a 100644 --- a/Duplicati/Library/UsageReporter/ReportSet.cs +++ b/Duplicati/Library/UsageReporter/ReportSet.cs @@ -38,6 +38,7 @@ namespace Duplicati.Library.UsageReporter private static string Cached_AppName; private static string Cached_AppVersion; private static string Cached_Assembly; + private static string Cached_PackageTypeId; [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] private static void DoInitUID() @@ -49,7 +50,7 @@ namespace Duplicati.Library.UsageReporter private static void DoInitOS() { if (OperatingSystem.IsMacOS()) - Cached_OSType = "OSX"; + Cached_OSType = "MacOS"; else if (OperatingSystem.IsLinux()) Cached_OSType = "Linux"; else if (OperatingSystem.IsWindows()) @@ -60,6 +61,12 @@ namespace Duplicati.Library.UsageReporter Cached_OSVersion = OSInfoHelper.PlatformString; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + private static void DoInitPackageType() + { + Cached_PackageTypeId = Library.AutoUpdater.UpdaterManager.PackageTypeId; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] private static void DoInitCLR() { @@ -90,6 +97,9 @@ namespace Duplicati.Library.UsageReporter try { DoInitOS(); } catch { } + try { DoInitPackageType(); } + catch { } + try { DoInitCLR(); } catch { } @@ -109,6 +119,8 @@ namespace Duplicati.Library.UsageReporter public string OSVersion { get; set; } [JsonProperty("clrversion")] public string CLRVersion { get; set; } + [JsonProperty("pkgid")] + public string PackageTypeId { get; set; } [JsonProperty("appname")] public string AppName { get; set; } [JsonProperty("appversion")] @@ -126,6 +138,7 @@ namespace Duplicati.Library.UsageReporter this.OSType = Cached_OSType; this.OSVersion = Cached_OSVersion; this.CLRVersion = Cached_CLRVersion; + this.PackageTypeId = Cached_PackageTypeId; this.AppName = Cached_AppName; this.AppVersion = Cached_AppVersion; this.Assembly = Cached_Assembly;