Skip to content

Commit c39d84f

Browse files
committed
fix(#365): correctly downcast websocket cnx when not using tls
1 parent 57a142c commit c39d84f

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/tunnel/server/handler_websocket.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,13 @@ pub(super) async fn ws_server_upgrade(
4747
tokio::spawn(
4848
async move {
4949
let (ws_rx, ws_tx) = match fut.await {
50-
Ok(ws) => mk_websocket_tunnel(ws, Role::Server, mask_frame)?,
50+
Ok(ws) => match mk_websocket_tunnel(ws, Role::Server, mask_frame) {
51+
Ok(ws) => ws,
52+
Err(err) => {
53+
error!("Error during http upgrade request: {:?}", err);
54+
return Err(err);
55+
}
56+
},
5157
Err(err) => {
5258
error!("Error during http upgrade request: {:?}", err);
5359
return Err(anyhow::Error::from(err));

src/tunnel/transport/websocket.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,7 @@ pub fn mk_websocket_tunnel(
319319
WebSocket::after_handshake(transport, role)
320320
}
321321
Err(upgraded) => {
322-
let stream = upgraded
323-
.downcast::<TokioIo<TcpStream>>()
322+
let stream = hyper_util::server::conn::auto::upgrade::downcast::<TokioIo<TcpStream>>(upgraded)
324323
.map_err(|_| anyhow!("cannot downcast websocket server stream"))?;
325324
let transport = TransportStream::from_tcp(stream.io.into_inner(), stream.read_buf);
326325
WebSocket::after_handshake(transport, role)

0 commit comments

Comments
 (0)