From d0aa711211f05582620aa87219d3bed9f229ee37 Mon Sep 17 00:00:00 2001 From: 0x676e67 Date: Tue, 28 Jan 2025 17:59:07 +0800 Subject: [PATCH] feat(websocket): Explicitly force the use of ws/wss protocol --- src/client/websocket/mod.rs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/client/websocket/mod.rs b/src/client/websocket/mod.rs index a288ebf2..61dc71b9 100644 --- a/src/client/websocket/mod.rs +++ b/src/client/websocket/mod.rs @@ -168,21 +168,17 @@ impl WebSocketRequestBuilder { // Ensure the scheme is http or https let url = request.url_mut(); - match url.scheme() { - "ws" | "wss" => { - let new_scheme = if url.scheme() == "ws" { - Scheme::HTTP.as_str() - } else { - Scheme::HTTPS.as_str() - }; - url.set_scheme(new_scheme) - .map_err(|_| error::url_bad_scheme(url.clone()))?; - } - "http" | "https" => {} + let new_scheme = match url.scheme() { + "ws" => Scheme::HTTP.as_str(), + "wss" => Scheme::HTTPS.as_str(), _ => { return Err(error::url_bad_scheme(url.clone())); } - } + }; + + // Update the scheme + url.set_scheme(new_scheme) + .map_err(|_| error::url_bad_scheme(url.clone()))?; // Get the version of the request // If the version is not set, use the default version