diff --git a/src/driver/connection/error.rs b/src/driver/connection/error.rs index 7b87bde..70686ba 100644 --- a/src/driver/connection/error.rs +++ b/src/driver/connection/error.rs @@ -27,8 +27,6 @@ pub enum Error { CryptoModeUnavailable, /// An indicator that an endpoint URL was invalid. EndpointUrl, - /// Discord hello/ready handshake was violated. - ExpectedHandshake, /// Discord failed to correctly respond to IP discovery. IllegalDiscoveryResponse, /// Could not parse Discord's view of our IP. @@ -103,7 +101,6 @@ impl fmt::Display for Error { Self::CryptoModeInvalid => write!(f, "server changed negotiated encryption mode"), Self::CryptoModeUnavailable => write!(f, "server did not offer chosen encryption mode"), Self::EndpointUrl => write!(f, "endpoint URL received from gateway was invalid"), - Self::ExpectedHandshake => write!(f, "voice initialisation protocol was violated"), Self::IllegalDiscoveryResponse => write!(f, "IP discovery/NAT punching response was invalid"), Self::IllegalIp => write!(f, "IP discovery/NAT punching response had bad IP value"), @@ -124,7 +121,6 @@ impl StdError for Error { | Error::CryptoModeInvalid | Error::CryptoModeUnavailable | Error::EndpointUrl - | Error::ExpectedHandshake | Error::IllegalDiscoveryResponse | Error::IllegalIp | Error::InterconnectFailure(_) diff --git a/src/driver/connection/mod.rs b/src/driver/connection/mod.rs index 3c87893..855f5e2 100644 --- a/src/driver/connection/mod.rs +++ b/src/driver/connection/mod.rs @@ -95,8 +95,6 @@ impl Connection { }, other => { debug!("Expected ready/hello; got: {:?}", other); - - return Err(Error::ExpectedHandshake); }, } } @@ -304,8 +302,6 @@ impl Connection { }, other => { debug!("Expected resumed/hello; got: {:?}", other); - - return Err(Error::ExpectedHandshake); }, } } diff --git a/src/driver/mod.rs b/src/driver/mod.rs index 229fc22..4045978 100644 --- a/src/driver/mod.rs +++ b/src/driver/mod.rs @@ -30,8 +30,6 @@ pub use mix_mode::MixMode; #[cfg(test)] pub use test_config::*; -#[cfg(feature = "builtin-queue")] -use crate::tracks; #[cfg(feature = "builtin-queue")] use crate::tracks::TrackQueue; use crate::{ diff --git a/src/driver/tasks/ws.rs b/src/driver/tasks/ws.rs index 49b4eeb..06f79b7 100644 --- a/src/driver/tasks/ws.rs +++ b/src/driver/tasks/ws.rs @@ -95,10 +95,6 @@ impl AuxNetwork { } ws_msg = self.ws_client.recv_json_no_timeout(), if !self.dont_send => { ws_error = match ws_msg { - Err(WsError::Json(e)) => { - debug!("Unexpected JSON {:?}.", e); - false - }, Err(e) => { should_reconnect = ws_error_is_not_final(&e); ws_reason = Some((&e).into()); diff --git a/src/events/context/data/disconnect.rs b/src/events/context/data/disconnect.rs index ca07242..4275849 100644 --- a/src/events/context/data/disconnect.rs +++ b/src/events/context/data/disconnect.rs @@ -90,7 +90,6 @@ impl From<&ConnectionError> for DisconnectReason { | ConnectionError::CryptoModeInvalid | ConnectionError::CryptoModeUnavailable | ConnectionError::EndpointUrl - | ConnectionError::ExpectedHandshake | ConnectionError::IllegalDiscoveryResponse | ConnectionError::IllegalIp | ConnectionError::Json(_) => Self::ProtocolViolation, diff --git a/src/ws.rs b/src/ws.rs index 1d4755c..4d987f7 100644 --- a/src/ws.rs +++ b/src/ws.rs @@ -94,19 +94,16 @@ pub(crate) fn convert_ws_message(message: Option) -> Result - match unsafe { crate::json::from_str(payload.as_mut_str()) } { - Ok(event) => Some(event), - Err(why) => { - debug!( - "Could not deserialize websocket event, payload: {}, error: {}", - payload, why - ); - None - }, - }, + (unsafe { crate::json::from_str(payload.as_mut_str()) }) + .map_err(|e| { + let safe_payload = String::from_utf8_lossy(payload.as_bytes()); + debug!("Unexpected JSON: {e}. Payload: {safe_payload}"); + e + }) + .ok(), Some(Message::Binary(bytes)) => { return Err(Error::UnexpectedBinaryMessage(bytes)); },