From 7ca1b5aeacd9633e5a3dca9f7596975dbc686508 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 1 Mar 2026 14:39:56 +0100 Subject: slowly preparing for actual casino --- src/bin/server/handler.rs | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'src/bin/server/handler.rs') diff --git a/src/bin/server/handler.rs b/src/bin/server/handler.rs index 2132d09..01fd9c9 100644 --- a/src/bin/server/handler.rs +++ b/src/bin/server/handler.rs @@ -19,6 +19,7 @@ pub fn handle_client(stream: TcpStream) { println!("[{} @ {}] Received: {}", user, client_addr, line); let response = process_message(&line, &mut user); writeln!(writer, "{}", response).unwrap(); + println!("[{} @ {}] Sent: {}", user, client_addr, response); } println!("[{} @ {}] Client disconnected", user, client_addr); } @@ -28,37 +29,49 @@ fn process_message(msg: &str, user: &mut String) -> String { match parts[0] { "REGISTER" => { if parts.len() != 3 { - "FAIL Invalid REGISTER format".to_string() + "ERROR Invalid REGISTER format".to_string() } else { let username = parts[1]; - let hashed_pass = parts[2]; + let hashed_password = parts[2]; let db = DB_CONN.lock().unwrap(); - match database::add_user(&db, username, hashed_pass) { - Ok(_) => format!("OK Registered {}", username), - Err(_) => "FAIL User already exists".to_string(), + match database::add_user(&db, username, hashed_password) { + Ok(_) => format!("REGISTERED {}", username), + Err(_) => "ERROR User already exists".to_string(), } } } "AUTH" => { if parts.len() != 3 { - "FAIL Invalid AUTH format".to_string() + "ERROR Invalid AUTH format".to_string() } else { let username = parts[1]; - let provided_hash = parts[2]; + let sent_hash = parts[2]; let db = DB_CONN.lock().unwrap(); if let Some(stored_hash) = database::get_hashed_password(&db, username) { - if provided_hash == stored_hash { + if sent_hash == stored_hash { *user = username.to_string(); format!("OK {}", username) } else { - "FAIL Invalid credentials".to_string() + "ERROR Invalid credentials".to_string() } } else { - "FAIL User not found".to_string() + "ERROR User not found".to_string() + } + } + } + "PING" => "PONG".to_string(), + "INFO" => { + if *user == "guest" { + "ERROR Not logged in".to_string() + } else { + let db = DB_CONN.lock().unwrap(); + if let (Some(id), Some(balance)) = (database::get_account_id(&db, user), database::get_balance(&db, user)) { + format!("INFO {} {} {}", user, id, balance) + } else { + "ERROR Error retrieving user info".to_string() } } } - "PING" => "PING".to_string(), _ => msg.to_string(), // Echo back for compatibility } } -- cgit v1.2.3