From 40c1498226128e471661885bb35de1839f314189 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Fri, 21 Feb 2025 14:33:43 +0800 Subject: [PATCH] When testing speed, skip items with incorrect latency --- v2rayN/ServiceLib/Services/SpeedtestService.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/v2rayN/ServiceLib/Services/SpeedtestService.cs b/v2rayN/ServiceLib/Services/SpeedtestService.cs index eb6b306a..8cf3964f 100644 --- a/v2rayN/ServiceLib/Services/SpeedtestService.cs +++ b/v2rayN/ServiceLib/Services/SpeedtestService.cs @@ -261,10 +261,17 @@ namespace ServiceLib.Services if (pid > 0) { await Task.Delay(500); - await DoRealPing(downloadHandle, it); + var delay = await DoRealPing(downloadHandle, it); if (blSpeedTest) { - await DoSpeedTest(downloadHandle, it); + if (delay > 0) + { + await DoSpeedTest(downloadHandle, it); + } + else + { + UpdateFunc(it.IndexId, "", ResUI.SpeedtestingSkip); + } } } else @@ -289,13 +296,14 @@ namespace ServiceLib.Services Task.WaitAll(tasks.ToArray()); } - private async Task DoRealPing(DownloadService downloadHandle, ServerTestItem it) + private async Task DoRealPing(DownloadService downloadHandle, ServerTestItem it) { var webProxy = new WebProxy($"socks5://{Global.Loopback}:{it.Port}"); var responseTime = await downloadHandle.GetRealPingTime(_config.SpeedTestItem.SpeedPingTestUrl, webProxy, 10); ProfileExHandler.Instance.SetTestDelay(it.IndexId, responseTime); UpdateFunc(it.IndexId, responseTime.ToString()); + return responseTime; } private async Task DoSpeedTest(DownloadService downloadHandle, ServerTestItem it)