diff options
author | DjDeveloper <43033058+DjDeveloperr@users.noreply.github.com> | 2021-02-21 22:21:46 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-21 17:51:46 +0100 |
commit | fe1b512820cbdfd2b93ddfc8e935556878339425 (patch) | |
tree | 2d0bac58a55291a8f0275bcbe68ae4a432ca5626 /test_util/src | |
parent | eefd522f0490f9bb829de9342dcd1ed7aeacb42a (diff) |
fix(op_crates/websocket): default to close code 1005 (#9339)
Currently if WebSocket is closed without code, it will error
while on Chrome it would close with code 1005 instead.
Co-authored-by: crowlKats <13135287+crowlKats@users.noreply.github.com>
Diffstat (limited to 'test_util/src')
-rw-r--r-- | test_util/src/lib.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test_util/src/lib.rs b/test_util/src/lib.rs index a2c0b2396..8dcd4f623 100644 --- a/test_util/src/lib.rs +++ b/test_util/src/lib.rs @@ -59,6 +59,7 @@ const AUTH_REDIRECT_PORT: u16 = 4551; const HTTPS_PORT: u16 = 5545; const WS_PORT: u16 = 4242; const WSS_PORT: u16 = 4243; +const WS_CLOSE_PORT: u16 = 4244; pub const PERMISSION_VARIANTS: [&str; 5] = ["read", "write", "env", "net", "run"]; @@ -243,6 +244,20 @@ async fn run_ws_server(addr: &SocketAddr) { } } +async fn run_ws_close_server(addr: &SocketAddr) { + let listener = TcpListener::bind(addr).await.unwrap(); + while let Ok((stream, _addr)) = listener.accept().await { + tokio::spawn(async move { + let ws_stream_fut = accept_async(stream); + + let ws_stream = ws_stream_fut.await; + if let Ok(mut ws_stream) = ws_stream { + ws_stream.close(None).await.unwrap(); + } + }); + } +} + async fn get_tls_config( cert: &str, key: &str, @@ -781,6 +796,8 @@ pub async fn run_all_servers() { let ws_server_fut = run_ws_server(&ws_addr); let wss_addr = SocketAddr::from(([127, 0, 0, 1], WSS_PORT)); let wss_server_fut = run_wss_server(&wss_addr); + let ws_close_addr = SocketAddr::from(([127, 0, 0, 1], WS_CLOSE_PORT)); + let ws_close_server_fut = run_ws_close_server(&ws_close_addr); let main_server_fut = wrap_main_server(); let main_server_https_fut = wrap_main_https_server(); @@ -790,6 +807,7 @@ pub async fn run_all_servers() { redirect_server_fut, ws_server_fut, wss_server_fut, + ws_close_server_fut, another_redirect_server_fut, auth_redirect_server_fut, inf_redirects_server_fut, |