diff options
| author | Eskil Queseth <eskilq@kth.se> | 2020-10-16 01:43:13 +0200 |
|---|---|---|
| committer | Eskil Queseth <eskilq@kth.se> | 2020-10-16 01:43:13 +0200 |
| commit | 7e8e67edb7d6ac66fd6073c55053a4e8234710e8 (patch) | |
| tree | 4c8e04f4b1a031adaf46d39197675d4e500338bd /mumd | |
| parent | d38696eaef440f551fde00e91d73e192d1e8e89b (diff) | |
| parent | 18a3c0b3cf8254b70857e31ddd2b6213b10db156 (diff) | |
| download | mum-7e8e67edb7d6ac66fd6073c55053a4e8234710e8.tar.gz | |
Merge remote-tracking branch 'origin/main' into error-handling
Diffstat (limited to 'mumd')
| -rw-r--r-- | mumd/src/audio.rs | 4 | ||||
| -rw-r--r-- | mumd/src/main.rs | 5 | ||||
| -rw-r--r-- | mumd/src/network/tcp.rs | 2 | ||||
| -rw-r--r-- | mumd/src/state.rs | 1 |
4 files changed, 8 insertions, 4 deletions
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<Receiver<VoicePacketPayload>> { self.input_channel_receiver.take() } + + pub fn clear_clients(&mut self) { + self.client_streams.lock().unwrap().clear(); + } } impl ClientStream { diff --git a/mumd/src/main.rs b/mumd/src/main.rs index 7ab3c61..3a0d7ec 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,7 +67,7 @@ fn receive_oneshot_commands( // create listener let (server, server_name): (IpcOneShotServer<(Command, IpcSender<mumlib::error::Result<Option<CommandResponse>>>)>, 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<mumlib::error::Result<Option<CommandResponse>>>)) = server.accept().unwrap(); 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 0b3663d..58280cc 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -131,6 +131,7 @@ impl State { self.session_id = None; self.username = None; self.server = None; + self.audio.clear_clients(); self.phase_watcher .0 |
