From f2ed2870c64ce147de615f3e90bc1e8a52ed61a0 Mon Sep 17 00:00:00 2001 From: telastrus <4415544-telastrus@users.noreply.gitlab.com> Date: Thu, 8 Aug 2019 11:23:58 -0400 Subject: [PATCH] 90% there --- chat-cli/src/main.rs | 2 +- client/src/lib.rs | 22 +++++++++++++++++----- server/src/lib.rs | 6 ++++++ voxygen/src/menu/main/client_init.rs | 1 + 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/chat-cli/src/main.rs b/chat-cli/src/main.rs index dea1044b75..f8d114c7fc 100644 --- a/chat-cli/src/main.rs +++ b/chat-cli/src/main.rs @@ -48,7 +48,7 @@ fn main() { println!("Players online: {:?}", client.get_players()); - client.register(comp::Player::new(username, None), password); + client.register(comp::Player::new(username, None), password).unwrap(); let (tx, rx) = mpsc::channel(); thread::spawn(move || loop { diff --git a/client/src/lib.rs b/client/src/lib.rs index 82e162d1d3..96f269bb68 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -8,7 +8,7 @@ pub use specs::{join::Join, saveload::Marker, Entity as EcsEntity, ReadStorage}; use common::{ comp, - msg::{ClientMsg, ClientState, ServerError, ServerInfo, ServerMsg}, + msg::{ClientMsg, ClientState, ServerError, ServerInfo, ServerMsg, RequestStateError}, net::PostBox, state::{State, Uid}, terrain::{block::Block, chonk::ChonkMetrics, TerrainChunk, TerrainChunkSize}, @@ -134,11 +134,23 @@ impl Client { /// Request a state transition to `ClientState::Registered`. pub fn register(&mut self, player: comp::Player, password: String) -> Result<(), Error> { self.postbox.send_message(ClientMsg::Register { player, password }); - /*match self.postbox.next_message() { - + loop { + match self.postbox.next_message() { + Some(ServerMsg::StateAnswer(Err((RequestStateError::Denied, _)))) => { + println!("Got a bad"); + break Err(Error::InvalidAuth) + }, + Some(ServerMsg::StateAnswer(Ok(ClientState::Registered))) => { + println!("Got a good"); + break Ok(()) + } + Some(x) => { + println!("Got unusual message: {:?}", x); + } + None => { println!("Got nothing?"); }, + + } } - self.client_state = ClientState::Pending;*/ - Err(Error::InvalidAuth) } /// Request a state transition to `ClientState::Character`. diff --git a/server/src/lib.rs b/server/src/lib.rs index e4d2de309b..94ae8a221d 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -530,11 +530,16 @@ impl Server { // Valid player ClientMsg::Register { player, password } if player.is_valid() => { if let Some(pass) = accounts.get(&player.alias) { + println!("Verifying {} with {} against {}", + player.alias, password, pass); if pass != &password { client.error_state(RequestStateError::Denied); break; } } else { + + println!("Adding user {} with password {}", + player.alias, password); accounts.insert(player.alias.clone(), password); } println!("{:?}", accounts); @@ -545,6 +550,7 @@ impl Server { // Use RequestState instead (No need to send `player` again). _ => client.error_state(RequestStateError::Impossible), } + //client.allow_state(ClientState::Registered); } // Invalid player ClientMsg::Register { .. } => { diff --git a/voxygen/src/menu/main/client_init.rs b/voxygen/src/menu/main/client_init.rs index 3b43d5a3d6..a0a0362d8d 100644 --- a/voxygen/src/menu/main/client_init.rs +++ b/voxygen/src/menu/main/client_init.rs @@ -64,6 +64,7 @@ impl ClientInit { } _ => {} } + println!("Auth success"); let _ = tx.send(Ok(client)); #[cfg(feature = "discord")]