--- a/gameServer2/src/server/handlers.rs Tue Jan 24 20:28:16 2017 +0300
+++ b/gameServer2/src/server/handlers.rs Wed Jan 25 23:48:23 2017 +0300
@@ -8,35 +8,23 @@
use protocol::messages::HWProtocolMessage;
use protocol::messages::HWServerMessage::*;
-pub fn handle(server: &mut HWServer, token: mio::Token, poll: &mio::Poll, action: Action) {
- match action {
- SendMe(msg) => server.send(token, &msg),
- ByeClient(msg) => {
- server.react(token, poll, vec![
- SendMe(Bye(&msg).to_raw_protocol()),
- RemoveClient,
- ]);
- },
- RemoveClient => {
- server.clients[token].deregister(poll);
- server.clients.remove(token);
- },
- ReactProtocolMessage(msg) => match msg {
- HWProtocolMessage::Ping =>
- server.react(token, poll, vec![SendMe(Pong.to_raw_protocol())]),
- HWProtocolMessage::Quit(Some(msg)) =>
- server.react(token, poll, vec![ByeClient("User quit: ".to_string() + &msg)]),
- HWProtocolMessage::Quit(None) =>
- server.react(token, poll, vec![ByeClient("User quit".to_string())]),
- HWProtocolMessage::Nick(nick) =>
- if server.clients[token].nick.len() == 0 {
+pub fn handle(server: &mut HWServer, token: mio::Token, poll: &mio::Poll, message: HWProtocolMessage) {
+ match message {
+ HWProtocolMessage::Ping =>
+ server.react(token, poll, vec![SendMe(Pong.to_raw_protocol())]),
+ HWProtocolMessage::Quit(Some(msg)) =>
+ server.react(token, poll, vec![ByeClient("User quit: ".to_string() + &msg)]),
+ HWProtocolMessage::Quit(None) =>
+ server.react(token, poll, vec![ByeClient("User quit".to_string())]),
+ HWProtocolMessage::Nick(nick) =>
+ if server.clients[token].nick.len() == 0 {
server.react(token, poll, vec![SendMe(Nick(&nick).to_raw_protocol())]);
server.clients[token].nick = nick;
},
- HWProtocolMessage::Malformed => warn!("Malformed/unknown message"),
- HWProtocolMessage::Empty => warn!("Empty message"),
- _ => unimplemented!(),
- }
- //_ => unimplemented!(),
+ HWProtocolMessage::Proto(proto) =>
+ server.clients[token].protocolNumber = proto,
+ HWProtocolMessage::Malformed => warn!("Malformed/unknown message"),
+ HWProtocolMessage::Empty => warn!("Empty message"),
+ _ => unimplemented!(),
}
}