diff --git a/src/cli.rs b/src/cli.rs index 287b443..bded136 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -54,6 +54,10 @@ pub(crate) struct AutoArgs { #[arg(long, default_value_t = 10)] pub(crate) speed_top: usize, + /// Stage 3: concurrent downloads during the speed test (1 = most accurate). + #[arg(long, default_value_t = 1)] + pub(crate) speed_concurrency: usize, + /// Also test IPv6 ranges (off by default). #[arg(short = '6', long = "ipv6")] pub(crate) ipv6: bool, diff --git a/src/commands.rs b/src/commands.rs index c2eec39..38b946a 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -25,7 +25,6 @@ const PING_MIN_LATENCY_MS: f64 = 10.0; const PING_MAX_LATENCY_MS: f64 = 300.0; const LAT_CONCURRENCY: usize = 50; const LAT_TIMEOUT: f64 = 5.0; -const SPEED_CONCURRENCY: usize = 1; const SPEED_TIMEOUT: f64 = 10.0; const SPEED_BYTES: u64 = 10_000_000; @@ -197,7 +196,7 @@ pub(crate) async fn run_auto(args: AutoArgs) -> Result<()> { let speed_results = stage_speed( &node, &inputs, - SPEED_CONCURRENCY, + args.speed_concurrency.max(1), Duration::from_secs_f64(SPEED_TIMEOUT), SPEED_BYTES, args.min_speed,