From 8dc62066835ef6a3ae7f0b9cc0a9a068e4ef49c2 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Mon, 4 Aug 2025 00:06:57 +0200 Subject: [PATCH] Speed up file transfer for network-based installers There is a bug in `telnet_send_file` where we never close the connection to nc, and instead wait for it to time out. This means every file transfer takes at least 5 seconds. --- installer/src/util.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/installer/src/util.rs b/installer/src/util.rs index b368c72..fb5a50d 100644 --- a/installer/src/util.rs +++ b/installer/src/util.rs @@ -71,8 +71,13 @@ pub async fn telnet_send_file(addr: SocketAddr, filename: &str, payload: &[u8]) sleep(Duration::from_millis(100)).await; let mut addr = addr; addr.set_port(8081); - let mut stream = TcpStream::connect(addr).await?; - stream.write_all(payload).await?; + + { + let mut stream = TcpStream::connect(addr).await?; + stream.write_all(payload).await?; + // ensure that stream is dropped before we wait for nc to terminate! + } + handle.await??; } let checksum = md5::compute(payload);