summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-09-09 15:50:00 +0200
committermetamuffin <metamuffin@disroot.org>2022-09-09 15:50:00 +0200
commitb0c6062607b037ba1a6e388e5c23746bdd8dbdcf (patch)
tree3b45f185db24d56df0be3a9156cd8318c774ac55 /server
parentde8e2d40ed2744c4c25ec7cdbe778e1723dbb830 (diff)
downloadkeks-meet-b0c6062607b037ba1a6e388e5c23746bdd8dbdcf.tar
keks-meet-b0c6062607b037ba1a6e388e5c23746bdd8dbdcf.tar.bz2
keks-meet-b0c6062607b037ba1a6e388e5c23746bdd8dbdcf.tar.zst
nothing
Diffstat (limited to 'server')
-rw-r--r--server/src/main.rs5
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!!
}