diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-10-21 03:08:21 +0200 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-10-21 03:08:21 +0200 |
| commit | 685eb0ebb072ce2f3da562e828a6ab89c2b0fa65 (patch) | |
| tree | a9cefffc0fcfea36fc024e865b5a8431dcd28177 /mumd/src/network/tcp.rs | |
| parent | 1c18f57afe3eae3d61ad44c899d57332e0f71e0c (diff) | |
| parent | f98c4d84b24698187102bcc3660246b2a1acb23d (diff) | |
| download | mum-685eb0ebb072ce2f3da562e828a6ab89c2b0fa65.tar.gz | |
Merge branch 'audio-new-clients' into 'main'
Parse user state diff and handle connecting clients
Closes #37 and #36
See merge request gustav/mum!14
Diffstat (limited to 'mumd/src/network/tcp.rs')
| -rw-r--r-- | mumd/src/network/tcp.rs | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/mumd/src/network/tcp.rs b/mumd/src/network/tcp.rs index 88d2b59..6471771 100644 --- a/mumd/src/network/tcp.rs +++ b/mumd/src/network/tcp.rs @@ -285,23 +285,17 @@ 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); } ControlPacket::ChannelState(msg) => { debug!("Channel state received"); |
