From 885258b85ef40d9f0dba2b6bca6a1df2e8a3a933 Mon Sep 17 00:00:00 2001 From: Alexey <247128645+axkurcom@users.noreply.github.com> Date: Thu, 21 May 2026 20:35:25 +0300 Subject: [PATCH] Prioritize Relay Flow Cancellation over Buffered Writes --- src/proxy/middle_relay/d2c.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/proxy/middle_relay/d2c.rs b/src/proxy/middle_relay/d2c.rs index 6adc442..92fe3c1 100644 --- a/src/proxy/middle_relay/d2c.rs +++ b/src/proxy/middle_relay/d2c.rs @@ -437,8 +437,9 @@ where W: AsyncWrite + Unpin + Send + 'static, { tokio::select! { - result = client_writer.write_all(bytes) => result.map_err(ProxyError::Io), + biased; _ = cancel.cancelled() => Err(ProxyError::MiddleClientWriterCancelled), + result = client_writer.write_all(bytes) => result.map_err(ProxyError::Io), } } @@ -450,7 +451,8 @@ where W: AsyncWrite + Unpin + Send + 'static, { tokio::select! { - result = client_writer.flush() => result.map_err(ProxyError::Io), + biased; _ = cancel.cancelled() => Err(ProxyError::MiddleClientWriterCancelled), + result = client_writer.flush() => result.map_err(ProxyError::Io), } }