From 80849e1c02ae5f0fda199730a5268bc03aa71df0 Mon Sep 17 00:00:00 2001 From: TJ da Tuna Date: Thu, 29 Jan 2026 15:42:35 -0600 Subject: [PATCH] Add --accept-gdpr flag and Ookla terms disclaimer - Add --accept-gdpr to speedtest CLI for EU compliance - Add Ookla EULA/Terms/Privacy/GDPR disclaimer on first deploy - Remove unused GenerateSpeedtestCommand() and RunSpeedtestAsync() --- src/NetworkOptimizer.Sqm/ScriptGenerator.cs | 2 +- .../SpeedtestIntegration.cs | 8 --- .../Components/Pages/ClientSpeedTest.razor | 4 +- .../Components/Pages/Sqm.razor | 27 +++++++--- .../Services/ISqmDeploymentService.cs | 7 --- .../Services/ISqmService.cs | 7 --- .../Services/SqmDeploymentService.cs | 54 ------------------- .../Services/SqmService.cs | 25 --------- src/NetworkOptimizer.Web/wwwroot/css/app.css | 9 ++++ .../SpeedtestIntegrationTests.cs | 21 -------- 10 files changed, 31 insertions(+), 133 deletions(-) diff --git a/src/NetworkOptimizer.Sqm/ScriptGenerator.cs b/src/NetworkOptimizer.Sqm/ScriptGenerator.cs index b7c5b6cf..70dc22c4 100644 --- a/src/NetworkOptimizer.Sqm/ScriptGenerator.cs +++ b/src/NetworkOptimizer.Sqm/ScriptGenerator.cs @@ -258,7 +258,7 @@ private string GenerateSpeedtestScript(Dictionary baseline) ? "" : $" --server-id={_config.PreferredSpeedtestServerId}"; sb.AppendLine("# Run speedtest"); - sb.AppendLine($"speedtest_output=$(speedtest --accept-license --format=json --interface=$INTERFACE{serverIdArg})"); + sb.AppendLine($"speedtest_output=$(speedtest --accept-license --accept-gdpr --format=json --interface=$INTERFACE{serverIdArg})"); sb.AppendLine(); sb.AppendLine("# Parse download speed (bytes/sec to Mbps)"); sb.AppendLine("download_speed_bytes=$(echo \"$speedtest_output\" | jq .download.bandwidth)"); diff --git a/src/NetworkOptimizer.Sqm/SpeedtestIntegration.cs b/src/NetworkOptimizer.Sqm/SpeedtestIntegration.cs index 3abb96db..816261f4 100644 --- a/src/NetworkOptimizer.Sqm/SpeedtestIntegration.cs +++ b/src/NetworkOptimizer.Sqm/SpeedtestIntegration.cs @@ -137,14 +137,6 @@ public bool IsValidResult(SpeedtestResult result) return true; } - /// - /// Generate speedtest command for shell script - /// - public string GenerateSpeedtestCommand() - { - return $"speedtest --accept-license --format=json --interface={_config.Interface}"; - } - /// /// Calculate variance from baseline as percentage /// diff --git a/src/NetworkOptimizer.Web/Components/Pages/ClientSpeedTest.razor b/src/NetworkOptimizer.Web/Components/Pages/ClientSpeedTest.razor index a5cca593..cfee3e16 100644 --- a/src/NetworkOptimizer.Web/Components/Pages/ClientSpeedTest.razor +++ b/src/NetworkOptimizer.Web/Components/Pages/ClientSpeedTest.razor @@ -45,7 +45,7 @@ Recommended

- Run a speed test directly from any web browser using OpenSpeedTest™. Works on all devices. + Run a speed test directly from any web browser using OpenSpeedTest™. Works on all devices. @if (openSpeedTestUrl?.StartsWith("https://") == true) { Location data is collected with each test (with your permission), and results can be seen in the Speed / Coverage Map below. @@ -148,7 +148,7 @@

Install iperf3 on client device:
sudo apt install iperf3 (Linux)
brew install iperf3 (Mac)
-
iperf.fr (Windows)
+
iperf.fr (Windows)
Various clients available on iOS App Store and Google Play
} diff --git a/src/NetworkOptimizer.Web/Components/Pages/Sqm.razor b/src/NetworkOptimizer.Web/Components/Pages/Sqm.razor index ea53e7de..4cd5f6c1 100644 --- a/src/NetworkOptimizer.Web/Components/Pages/Sqm.razor +++ b/src/NetworkOptimizer.Web/Components/Pages/Sqm.razor @@ -681,15 +681,26 @@ } else { -

- Adaptive SQM uses a dual-mode approach: Speedtest-based adjustments run 2x daily - at configured times, while Ping-based adjustments run every 5 minutes - for real-time latency optimization. -

+ @if (deploymentStatus?.IsDeployed != true) + { +

+ Adaptive SQM uses a dual-mode approach: Speedtest-based adjustments run 2x daily + at configured times, while Ping-based adjustments run every 5 minutes + for real-time latency optimization. +

+ +
+ Disclaimer: Using Adaptive SQM may affect your ability to receive tech support from Ubiquiti. If tech support ever needs a support file, you may be required to factory reset and restore from a backup. We've tested this on several device combinations, but deploy at your own risk. If you encounter errors or unexpected behavior, use Remove Adaptive SQM to ensure normal gateway performance. +
-
- Disclaimer: Using Adaptive SQM may affect your ability to receive tech support from Ubiquiti. If tech support ever needs a support file, you may be required to factory reset and restore from a backup. We've tested this on several device combinations, but deploy at your own risk. -
+
+ Ookla Speedtest: For home/personal use only. By deploying, you accept Ookla's + EULA, + Terms, and + Privacy Policy. + EU users: see GDPR DPA. +
+ }