aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-01-27 19:59:39 +0100
committermetamuffin <metamuffin@disroot.org>2024-01-27 19:59:39 +0100
commit91259369b2b87eb647e9743c874d7e58894149c1 (patch)
treec717d3c4fb3322bb559a50eab1a2331f9c351a70 /server
parent0d8a3082fe32e9dd89deea9f051f6e53df591646 (diff)
downloadkeks-meet-91259369b2b87eb647e9743c874d7e58894149c1.tar
keks-meet-91259369b2b87eb647e9743c874d7e58894149c1.tar.bz2
keks-meet-91259369b2b87eb647e9743c874d7e58894149c1.tar.zst
handle room joins without page reload.
Diffstat (limited to 'server')
-rw-r--r--server/src/logic.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/server/src/logic.rs b/server/src/logic.rs
index 01b7a82..b16e605 100644
--- a/server/src/logic.rs
+++ b/server/src/logic.rs
@@ -106,10 +106,9 @@ impl State {
ServerboundPacket::Join { hash } => {
if let Some(room) = &cstate.current_room {
room.leave(self, client).await;
- // TODO dont leak room
- // if room.should_remove().await {
- // self.rooms.write().await.remove(üw);
- // }
+ if room.should_remove().await {
+ self.rooms.write().await.remove(&room.hash);
+ }
}
if let Some(hash) = hash {
let room = self
@@ -223,10 +222,8 @@ impl Room {
pub async fn leave(&self, state: &State, client: Client) {
debug!("client leave {client:?}");
for c in self.users.read().await.iter() {
- if *c != client {
- self.send_to_client(*c, ClientboundPacket::ClientLeave { id: client })
- .await;
- }
+ self.send_to_client(*c, ClientboundPacket::ClientLeave { id: client })
+ .await;
}
let user_count = {
let mut g = self.users.write().await;