From 9f4c05059f1990a23995e3363f88ab753187042d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Sun, 18 Oct 2020 02:08:32 +0200 Subject: parse user state diff and handle connecting clients --- mumd/src/network/tcp.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'mumd/src/network') diff --git a/mumd/src/network/tcp.rs b/mumd/src/network/tcp.rs index 88d2b59..c4804f8 100644 --- a/mumd/src/network/tcp.rs +++ b/mumd/src/network/tcp.rs @@ -285,23 +285,18 @@ async fn listen( ControlPacket::UserState(msg) => { let mut state = state.lock().unwrap(); let session = msg.get_session(); - 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); - } + + let user_state_diff = state.parse_user_state(*msg); + //TODO do something with user state diff + debug!("user state diff: {:#?}", &user_state_diff); + let server = state.server_mut().unwrap(); let user = server.users().get(&session).unwrap(); info!("User {} connected to {}", user.name(), user.channel()); } ControlPacket::UserRemove(msg) => { info!("User {} left", msg.get_session()); - state - .lock() - .unwrap() - .audio_mut() - .remove_client(msg.get_session()); + state.lock().unwrap().remove_client(msg.get_session()); } ControlPacket::ChannelState(msg) => { debug!("Channel state received"); -- cgit v1.2.1