From c96eb0279e8d3092988e8d5c49e132d243ddbae4 Mon Sep 17 00:00:00 2001 From: Eskil Date: Thu, 15 Oct 2020 22:22:43 +0000 Subject: Update state properly when disconnecting from server and on user_state packet --- mumd/src/audio.rs | 4 ++++ mumd/src/network/tcp.rs | 2 +- mumd/src/state.rs | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) (limited to 'mumd') diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs index 1445415..edc2f7f 100644 --- a/mumd/src/audio.rs +++ b/mumd/src/audio.rs @@ -191,6 +191,10 @@ impl Audio { pub fn take_receiver(&mut self) -> Option> { self.input_channel_receiver.take() } + + pub fn clear_clients(&mut self) { + self.client_streams.lock().unwrap().clear(); + } } impl ClientStream { diff --git a/mumd/src/network/tcp.rs b/mumd/src/network/tcp.rs index 6a369e5..ea4ef86 100644 --- a/mumd/src/network/tcp.rs +++ b/mumd/src/network/tcp.rs @@ -286,8 +286,8 @@ async fn listen( ControlPacket::UserState(msg) => { let mut state = state.lock().unwrap(); let session = msg.get_session(); - state.audio_mut().add_client(msg.get_session()); //TODO if *state.phase_receiver().borrow() == StatePhase::Connecting { + state.audio_mut().add_client(msg.get_session()); state.parse_initial_user_state(*msg); } else { state.server_mut().unwrap().parse_user_state(*msg); diff --git a/mumd/src/state.rs b/mumd/src/state.rs index b6fe780..68ced10 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -125,6 +125,7 @@ impl State { self.session_id = None; self.username = None; self.server = None; + self.audio.clear_clients(); self.phase_watcher .0 -- cgit v1.2.1 From 857a3614f0aac2510717799708760a4124d412c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Fri, 16 Oct 2020 00:45:45 +0200 Subject: update logging --- mumd/src/main.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'mumd') diff --git a/mumd/src/main.rs b/mumd/src/main.rs index 8639c35..14a43c1 100644 --- a/mumd/src/main.rs +++ b/mumd/src/main.rs @@ -37,7 +37,6 @@ async fn main() { ); let state = Arc::new(Mutex::new(state)); - // Run it let (_, _, _, e) = join!( network::tcp::handle( Arc::clone(&state), @@ -54,7 +53,7 @@ async fn main() { state, command_receiver, ), - spawn_blocking(move || { + spawn_blocking(move || { // IpcSender is blocking receive_oneshot_commands(command_sender); }), ); @@ -68,11 +67,11 @@ fn receive_oneshot_commands( // create listener let (server, server_name): (IpcOneShotServer<(Command, IpcSender, ()>>)>, String) = IpcOneShotServer::new().unwrap(); fs::write("/var/tmp/mumd-oneshot", &server_name).unwrap(); - debug!("Listening for command at {}...", server_name); + debug!("Listening to {}", server_name); // receive command and response channel let (_, conn): (_, (Command, IpcSender, ()>>)) = server.accept().unwrap(); - debug!("Sending command {:?} to command handler", conn.0); + debug!("Sending to command handler: {:#?}", conn.0); command_sender.send(conn).unwrap(); } } -- cgit v1.2.1