self.client = ClientState::LoginAuthIssued { username, challenge: challenge.clone() };
ServerMessage::LoginAuthChallenge { challenge }
}
- (&mut ClientState::LoginAuthIssued { username, ref challenge }, ClientMessage::LoginAuthResponse { ref signature }) => {
- if self.server.verify(username, &challenge, signature).await {
+ (&mut ClientState::LoginAuthIssued { username, ref challenge }, ClientMessage::LoginAuthResponse { signature }) => {
+ if self.server.verify(username, &challenge, &signature).await {
self.client = ClientState::LoggedIn { username, state: LoggedInState::Idle };
ServerMessage::LoginSuccess
} else {
(Err(err), _, _) | (_, Err(err), _) | (_, _, Err(err)) => ServerMessage::JoinGameFailure { reason: err.to_string() },
}
}
- (&mut ClientState::LoggedIn { username, state: LoggedInState::InGame { ref mut game } }, ClientMessage::TakeAction { ref action }) => {
+ (&mut ClientState::LoggedIn { username, state: LoggedInState::InGame { ref mut game } }, ClientMessage::TakeAction { action }) => {
let timestamp = match self.server.now().await {
Ok(timestamp) => timestamp,
Err(err) => return ServerMessage::InternalError { reason: err.to_string() },
};
- let action = action.clone();
let action = UserAction { timestamp, username, action };
let id = game.id();
loop {