diff options
| -rw-r--r-- | mumd/src/audio.rs | 4 | ||||
| -rw-r--r-- | mumd/src/network/tcp.rs | 2 | ||||
| -rw-r--r-- | mumd/src/state.rs | 1 |
3 files changed, 6 insertions, 1 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/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 0fd814c..72197f6 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -122,6 +122,7 @@ impl State { self.session_id = None; self.username = None; self.server = None; + self.audio.clear_clients(); self.phase_watcher .0 |
