@@ -115,6 +115,8 @@ async fn run_tcp_listener(listener: TcpListener, state: DgwState) -> anyhow::Res
115115 loop {
116116 match listener. accept ( ) . await . context ( "failed to accept connection" ) {
117117 Ok ( ( stream, peer_addr) ) => {
118+ configure_tcp_socket ( & stream) ;
119+
118120 let state = state. clone ( ) ;
119121
120122 ChildTask :: spawn ( async move {
@@ -131,10 +133,6 @@ async fn run_tcp_listener(listener: TcpListener, state: DgwState) -> anyhow::Res
131133
132134#[ instrument( "tcp" , skip_all, fields( client = %peer_addr) ) ]
133135async fn handle_tcp_peer ( stream : TcpStream , state : DgwState , peer_addr : SocketAddr ) -> anyhow:: Result < ( ) > {
134- if let Err ( e) = stream. set_nodelay ( true ) {
135- error ! ( "set_nodelay on TcpStream failed: {}" , e) ;
136- }
137-
138136 let mut peeked = [ 0 ; 4 ] ;
139137 let n_read = stream
140138 . peek ( & mut peeked)
@@ -168,6 +166,8 @@ async fn run_http_listener(listener: TcpListener, state: DgwState) -> anyhow::Re
168166 loop {
169167 match listener. accept ( ) . await {
170168 Ok ( ( stream, peer_addr) ) => {
169+ configure_tcp_socket ( & stream) ;
170+
171171 let state = state. clone ( ) ;
172172
173173 let fut = tokio:: time:: timeout ( HTTP_CONNECTION_MAX_DURATION , async move {
@@ -195,6 +195,8 @@ async fn run_https_listener(listener: TcpListener, state: DgwState) -> anyhow::R
195195 loop {
196196 match listener. accept ( ) . await {
197197 Ok ( ( stream, peer_addr) ) => {
198+ configure_tcp_socket ( & stream) ;
199+
198200 let tls_acceptor = tls_conf. acceptor . clone ( ) ;
199201 let state = state. clone ( ) ;
200202
@@ -285,3 +287,9 @@ impl ToInternalUrl for Url {
285287 self
286288 }
287289}
290+
291+ fn configure_tcp_socket ( socket : & TcpStream ) {
292+ if let Err ( error) = socket. set_nodelay ( true ) {
293+ warn ! ( %error, "Failed to set TCP_NODELAY on the socket" ) ;
294+ }
295+ }
0 commit comments