From d9c4a5c23ad8bebcc9a5e5b595f5f3889ceb29b8 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Mon, 12 Feb 2024 10:06:11 +0100 Subject: [PATCH] fix(server): return err on WS handshake err (#1288) --- server/src/transport/ws.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/server/src/transport/ws.rs b/server/src/transport/ws.rs index c93aee67c8..b0c048da1c 100644 --- a/server/src/transport/ws.rs +++ b/server/src/transport/ws.rs @@ -415,6 +415,14 @@ where match server.receive_request(&req) { Ok(response) => { + let upgraded = match hyper::upgrade::on(req).await { + Ok(u) => u, + Err(e) => { + tracing::debug!(target: LOG_TARGET, "WS upgrade handshake failed: {}", e); + return Err(hyper::Response::new(hyper::Body::from(format!("WS upgrade handshake failed {e}")))); + } + }; + let (tx, rx) = mpsc::channel::(server_cfg.message_buffer_capacity as usize); let sink = MethodSink::new(tx); @@ -440,14 +448,6 @@ where let rpc_service = rpc_middleware.service(rpc_service); let fut = async move { - let upgraded = match hyper::upgrade::on(req).await { - Ok(u) => u, - Err(e) => { - tracing::debug!(target: LOG_TARGET, "WS upgrade handshake failed: {}", e); - return; - } - }; - let stream = BufReader::new(BufWriter::new(upgraded.compat())); let mut ws_builder = server.into_builder(stream); ws_builder.set_max_message_size(server_cfg.max_response_body_size as usize); @@ -472,7 +472,7 @@ where } Err(e) => { tracing::debug!(target: LOG_TARGET, "WS upgrade handshake failed: {}", e); - Err(hyper::Response::new(hyper::Body::from(format!("Could not upgrade connection: {e}")))) + Err(hyper::Response::new(hyper::Body::from(format!("WS upgrade handshake failed: {e}")))) } } }