From 6acf9ef4ab5fb92405ffa536f8693bcac63cc0fa Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 Jan 2024 00:01:02 +0100 Subject: [PATCH] fix(client): only take single url on (args.resume && first) (#1578) QUIC Interop Runner testcases `resumption` and `0-rtt` expect the client to download the first file, close the connection, and then download the remaining files on a second connection. https://github.com/quic-interop/quic-interop-runner/tree/master#test-cases Thus `neqo-client`, when `args.resume` is `true` must only take a single URL on the **first** loop iteration. On the second iteration it must take all remaining URLs. Regression introduced in https://github.com/mozilla/neqo/pull/1569. --- neqo-client/src/main.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/neqo-client/src/main.rs b/neqo-client/src/main.rs index 00674c9717..677829ad05 100644 --- a/neqo-client/src/main.rs +++ b/neqo-client/src/main.rs @@ -1086,13 +1086,16 @@ fn main() -> Res<()> { let hostname = format!("{host}"); let mut token: Option = None; + let mut first = true; while !urls.is_empty() { - let to_request = if args.resume || args.download_in_series { + let to_request = if (args.resume && first) || args.download_in_series { urls.pop_front().into_iter().collect() } else { std::mem::take(&mut urls) }; + first = false; + token = if args.use_old_http { old::old_client( &args,