diff options
Diffstat (limited to 'mumd/src')
| -rw-r--r-- | mumd/src/network/tcp.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/mumd/src/network/tcp.rs b/mumd/src/network/tcp.rs index c2cb234..9a7b786 100644 --- a/mumd/src/network/tcp.rs +++ b/mumd/src/network/tcp.rs @@ -16,6 +16,7 @@ use tokio::time::{self, Duration}; use tokio_tls::{TlsConnector, TlsStream}; use tokio_util::codec::{Decoder, Framed}; use std::collections::HashMap; +use std::collections::hash_map::Entry; use std::future::Future; use std::rc::Rc; use std::cell::RefCell; @@ -268,6 +269,16 @@ async fn listen( .unwrap() .audio_mut() .remove_client(msg.get_session()); + match state.lock().unwrap().server_mut().unwrap().users_mut().entry(msg.get_session()) { + Entry::Occupied(o) => { + o.remove_entry(); + info!("Removed entry"); + }, + Entry::Vacant(_) => { + warn!("Tried to disconnect unknown user {}", msg.get_session()); + } + } + info!("{}", state.lock().unwrap().server().unwrap().users().contains_key(&msg.get_session())); } ControlPacket::ChannelState(msg) => { debug!("Channel state received"); @@ -367,4 +378,4 @@ async fn run_until_disconnection<T, F, G, H>( }; join!(main_block, phase_transition_block); -}
\ No newline at end of file +} |
