From e43ab6c42a8744cacf6ef1449ae7ef20d016c8fa Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Thu, 8 May 2025 21:01:15 -0400 Subject: [PATCH] When no session is found when logging into the lobby, show an error msg It's the wrong error message, but it's better than getting an empty lobby screen! --- src/bin/kawari-lobby.rs | 11 ++++++++--- src/login/database.rs | 6 +++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/bin/kawari-lobby.rs b/src/bin/kawari-lobby.rs index 135b89f..417b5a0 100644 --- a/src/bin/kawari-lobby.rs +++ b/src/bin/kawari-lobby.rs @@ -90,9 +90,14 @@ async fn main() { let service_accounts: Option> = serde_json::from_str(&body).ok(); if let Some(service_accounts) = service_accounts { - connection.service_accounts = service_accounts; - connection.session_id = Some(session_id.clone()); - connection.send_account_list().await; + if service_accounts.is_empty() { + // request an update, wrong error message lol + connection.send_error(*sequence, 1012, 13101).await; + } else { + connection.service_accounts = service_accounts; + connection.session_id = Some(session_id.clone()); + connection.send_account_list().await; + } } else { // request an update, wrong error message lol connection.send_error(*sequence, 1012, 13101).await; diff --git a/src/login/database.rs b/src/login/database.rs index 5d7c4b8..1932da0 100644 --- a/src/login/database.rs +++ b/src/login/database.rs @@ -147,7 +147,11 @@ impl LoginDatabase { .prepare("SELECT user_id FROM sessions WHERE sid = ?1") .ok() .unwrap(); - user_id = stmt.query_row((sid,), |row| row.get(0)).unwrap(); + if let Ok(found_user_id) = stmt.query_row((sid,), |row| row.get(0)) { + user_id = found_user_id; + } else { + return Vec::default(); + } } // service accounts