aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src
diff options
context:
space:
mode:
Diffstat (limited to 'mumd/src')
-rw-r--r--mumd/src/audio.rs11
-rw-r--r--mumd/src/network.rs4
2 files changed, 15 insertions, 0 deletions
diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs
index 747716c..2d504cf 100644
--- a/mumd/src/audio.rs
+++ b/mumd/src/audio.rs
@@ -87,6 +87,17 @@ impl Audio {
}
}
}
+
+ pub fn remove_client(&self, session_id: u32) {
+ match self.client_streams.lock().unwrap().entry(session_id) {
+ Entry::Occupied(entry) => {
+ entry.remove();
+ }
+ Entry::Vacant(_) => {
+ eprintln!("tried to remove session id {} that doesn't exist", session_id);
+ }
+ }
+ }
}
impl ClientStream {
diff --git a/mumd/src/network.rs b/mumd/src/network.rs
index a2be9ea..c59754d 100644
--- a/mumd/src/network.rs
+++ b/mumd/src/network.rs
@@ -158,6 +158,10 @@ async fn listen_tcp(
println!("Found user {}", msg.get_name());
audio.lock().unwrap().add_client(msg.get_session());
}
+ ControlPacket::UserRemove(msg) => {
+ println!("User {} left", msg.get_session());
+ audio.lock().unwrap().remove_client(msg.get_session());
+ }
_ => {}
}
}