~starkingdoms/starkingdoms

a914780bbe572056ad834adef6392919b57614ae — c0repwn3r 2 years ago 16ef421
prevent the server from sending non-handshake packets to the client before the handshake is complete
1 files changed, 17 insertions(+), 10 deletions(-)

M server/src/handler.rs
M server/src/handler.rs => server/src/handler.rs +17 -10
@@ 28,20 28,26 @@ pub async fn handle_client(mgr: ClientManager, data: Arc<RwLock<PhysicsData>>, r
            match msg {
                ClientHandlerMessage::Tick => {} // this intentionally does nothing,
                ClientHandlerMessage::ChatMessage { from, message } => {
                    send!(client_tx, &MessageS2C::Chat {
                        message,
                        from
                    }).await?;
                    if matches!(state, State::Play) {
                        send!(client_tx, &MessageS2C::Chat {
                            message,
                            from
                        }).await?;
                    }
                }
                ClientHandlerMessage::PlayersUpdate { players } => {
                    send!(client_tx, &MessageS2C::PlayersUpdate {
                        players
                    }).await?;
                    if matches!(state, State::Play) {
                        send!(client_tx, &MessageS2C::PlayersUpdate {
                            players
                        }).await?;
                    }
                }
                ClientHandlerMessage::PlanetData { planets } => {
                    send!(client_tx, &MessageS2C::PlanetData {
                        planets
                    }).await?;
                    if matches!(state, State::Play) {
                        send!(client_tx, &MessageS2C::PlanetData {
                            planets
                        }).await?;
                    }
                }
            }
        } else {


@@ 103,6 109,7 @@ pub async fn handle_client(mgr: ClientManager, data: Arc<RwLock<PhysicsData>>, r
                                    given_username: requested_username.clone(),
                                    next_state,
                                }).await?;

                            state = next_state;
                            username = requested_username;