change struct
This commit is contained in:
parent
0904161a1f
commit
3a93ac2dd5
@ -13,12 +13,12 @@ const SERVER_ADDRESS: &str = "0.0.0.0:6667";
|
|||||||
const MAX_USERS: usize = 20;
|
const MAX_USERS: usize = 20;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
struct Server<'a> {
|
struct Server {
|
||||||
users: HashMap<String, &'a mut TcpStream>,
|
users: HashMap<String, TcpStream>,
|
||||||
rooms: HashMap<String, Vec<String>>,
|
rooms: HashMap<String, Vec<String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Server<'a> {
|
impl Server {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Server {
|
Server {
|
||||||
users: HashMap::new(),
|
users: HashMap::new(),
|
||||||
@ -41,14 +41,12 @@ fn broadcast(op: u8, server: &Arc<Mutex<Server>>, message: &str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let mut unlocked_server: std::sync::MutexGuard<'_, Server> = server.lock().unwrap();
|
let mut unlocked_server: std::sync::MutexGuard<'_, Server> = server.lock().unwrap();
|
||||||
let streams: std::collections::hash_map::ValuesMut<'_, String, &mut TcpStream> =
|
let streams = unlocked_server.users.values_mut();
|
||||||
unlocked_server.users.values_mut();
|
|
||||||
for stream in streams {
|
for stream in streams {
|
||||||
stream.write_all(&out_buf);
|
stream.write_all(&out_buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fn handle_client(
|
fn handle_client(
|
||||||
server: &Arc<Mutex<Server>>,
|
server: &Arc<Mutex<Server>>,
|
||||||
stream: &mut TcpStream,
|
stream: &mut TcpStream,
|
||||||
@ -161,8 +159,8 @@ fn register_nick(server: &Arc<Mutex<Server>>, nickname: &str, stream: &mut TcpSt
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
} else {
|
} else {
|
||||||
// Add the user to the user list
|
// Add the user to the user list
|
||||||
let cl: TcpStream = stream.try_clone().expect("fail to clone");
|
|
||||||
// unlocked_server.users.insert(nickname.to_string(), cloned_stream);
|
unlocked_server.users.insert(nickname.to_string(), stream);
|
||||||
|
|
||||||
// Send response ok
|
// Send response ok
|
||||||
stream.write_all(&[codes::RESPONSE_OK]).unwrap();
|
stream.write_all(&[codes::RESPONSE_OK]).unwrap();
|
||||||
|
Reference in New Issue
Block a user