diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-09 15:50:00 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-09 15:50:00 +0200 |
commit | b0c6062607b037ba1a6e388e5c23746bdd8dbdcf (patch) | |
tree | 3b45f185db24d56df0be3a9156cd8318c774ac55 /server/src | |
parent | de8e2d40ed2744c4c25ec7cdbe778e1723dbb830 (diff) | |
download | keks-meet-b0c6062607b037ba1a6e388e5c23746bdd8dbdcf.tar keks-meet-b0c6062607b037ba1a6e388e5c23746bdd8dbdcf.tar.bz2 keks-meet-b0c6062607b037ba1a6e388e5c23746bdd8dbdcf.tar.zst |
nothing
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/main.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/server/src/main.rs b/server/src/main.rs index 57e12f6..d6467d5 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -3,7 +3,7 @@ pub mod room; use hyper::{header, StatusCode}; use listenfd::ListenFd; -use log::error; +use log::{debug, error}; use room::Room; use std::collections::HashMap; use std::convert::Infallible; @@ -93,12 +93,15 @@ async fn handle_rejection(err: Rejection) -> Result<impl Reply, Infallible> { fn signaling_connect(rname: String, rooms: Rooms, ws: warp::ws::Ws) -> impl Reply { async fn inner(sock: WebSocket, rname: String, rooms: Rooms) { + debug!("ws upgrade"); let guard = rooms.read().await; let room = match guard.get(&rname) { Some(r) => r.to_owned(), None => { + debug!("aquire lock for insertion"); drop(guard); // make sure read-lock is dropped to avoid deadlock let mut guard = rooms.write().await; + debug!("create new room"); guard.insert(rname.to_owned(), Default::default()); guard.get(&rname).unwrap().to_owned() // TODO never expect this to always work!! } |