diff --git a/src/gateway/client.rs b/src/gateway/client.rs index 5a21265..1ef397f 100644 --- a/src/gateway/client.rs +++ b/src/gateway/client.rs @@ -35,11 +35,12 @@ impl Client { self.write.lock().await.send(payload.into()).await } - pub async fn on_message(&mut self, content: String) -> Result<(), String> { + pub async fn on_message(&mut self, content: String) { let payload = serde_json::from_str::(&content); if payload.is_err() { - Err("Invalid body".to_string())?; + log::debug!("Socket sent an invalid body"); + return; } let payload = payload.unwrap(); @@ -51,7 +52,5 @@ impl Client { } log::debug!("Socket Message: {:?}", content); - - Ok(()) } } diff --git a/src/gateway/events/authenticate.rs b/src/gateway/events/authenticate.rs index 05af29f..5580337 100644 --- a/src/gateway/events/authenticate.rs +++ b/src/gateway/events/authenticate.rs @@ -11,7 +11,7 @@ pub async fn run(client: &mut Client, payload: Payload) { } let user = if let Payload::Authenticate { token } = payload { - User::fetch_by_token(token.as_str()).await.ok() + User::fetch_by_token(token.as_str()).await } else { None }; diff --git a/src/gateway/upgrade.rs b/src/gateway/upgrade.rs index 02913fd..050b48f 100644 --- a/src/gateway/upgrade.rs +++ b/src/gateway/upgrade.rs @@ -34,9 +34,13 @@ async fn handle(ws: WebSocket) { while let Some(Ok(msg)) = receiver.next().await { if let Message::Text(content) = msg { - client.on_message(content).await.unwrap(); + client.on_message(content).await; + if client.user.is_some() { break; + } else { + log::debug!("Socket did not authenticate with valid token"); + return; } } }