diff --git a/crates/net/network/src/listener.rs b/crates/net/network/src/listener.rs index 18fbf59bba..f99c520bf6 100644 --- a/crates/net/network/src/listener.rs +++ b/crates/net/network/src/listener.rs @@ -42,6 +42,9 @@ impl ConnectionListener { let this = self.project(); match ready!(this.incoming.poll_next(cx)) { Some(Ok((stream, remote_addr))) => { + if let Err(err) = stream.set_nodelay(true) { + tracing::warn!(target : "net", "set nodelay failed: {:?}", err); + } Poll::Ready(ListenerEvent::Incoming { stream, remote_addr }) } Some(Err(err)) => Poll::Ready(ListenerEvent::Error(err)), diff --git a/crates/net/network/src/session/mod.rs b/crates/net/network/src/session/mod.rs index 75722c2867..3dad28b70b 100644 --- a/crates/net/network/src/session/mod.rs +++ b/crates/net/network/src/session/mod.rs @@ -759,7 +759,12 @@ async fn start_pending_outbound_session( bandwidth_meter: BandwidthMeter, ) { let stream = match TcpStream::connect(remote_addr).await { - Ok(stream) => MeteredStream::new_with_meter(stream, bandwidth_meter), + Ok(stream) => { + if let Err(err) = stream.set_nodelay(true) { + tracing::warn!(target : "net::session", "set nodelay failed: {:?}", err); + } + MeteredStream::new_with_meter(stream, bandwidth_meter) + } Err(error) => { let _ = events .send(PendingSessionEvent::OutgoingConnectionError {