diff --git a/src/lib/server/client_management/client/mod.rs b/src/lib/server/client_management/client/mod.rs index 416177f..4ca238a 100644 --- a/src/lib/server/client_management/client/mod.rs +++ b/src/lib/server/client_management/client/mod.rs @@ -80,16 +80,22 @@ pub struct Client { // client funciton implmentations impl IClient for Client { - fn new(map: HashMap, stream: TcpStream, server_channel: Sender ) -> Arc { + fn new( + uuid: String, + username: String, + address: String, + stream: TcpStream, + server_channel: Sender + ) -> Arc { let (sender, receiver) = unbounded(); let out_stream = stream.try_clone().unwrap(); let in_stream = stream.try_clone().unwrap(); Arc::new(Client { - username: map.get(&"name".to_string()).unwrap().clone(), - uuid: Uuid::parse_str(map.get(&"uuid".to_string()).unwrap().as_str()).expect("invalid id"), - address: map.get(&"host".to_string()).unwrap().clone(), + username, + uuid: Uuid::parse_str(&uuid).expect("invalid id"), + address, server_channel: Some(server_channel), diff --git a/src/lib/server/client_management/client/traits.rs b/src/lib/server/client_management/client/traits.rs index 20a0fe8..887a7b1 100644 --- a/src/lib/server/client_management/client/traits.rs +++ b/src/lib/server/client_management/client/traits.rs @@ -17,7 +17,13 @@ use crate::lib::server::ServerMessages; /// - send_msg: sends a event message to the client /// - recv_msg: used by the client to receive and process event messages pub trait IClient { - fn new(map: HashMap, stream: TcpStream, server_channel: Sender ) -> Arc; + fn new( + uuid: String, + username: String, + address: String, + stream: TcpStream, + server_channel: Sender + ) -> Arc; fn send(&self, bytes: Vec) -> Result<(), &str>; fn recv(&self) -> Option>; diff --git a/src/lib/server/network_manager/mod.rs b/src/lib/server/network_manager/mod.rs index 2e0a7b0..f85a0aa 100644 --- a/src/lib/server/network_manager/mod.rs +++ b/src/lib/server/network_manager/mod.rs @@ -89,7 +89,7 @@ impl ICooperative for NetworkManager { writer.flush().unwrap(); } NetworkSockIn::Connect { uuid, username, address } => { - println!("Connection requested") + self.server_channel.send().unwrap_or_default() } } }