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