10 |
10 |
11 mod loggingin; |
11 mod loggingin; |
12 mod lobby; |
12 mod lobby; |
13 mod inroom; |
13 mod inroom; |
14 |
14 |
15 pub fn handle(server: &mut HWServer, token: usize, poll: &mio::Poll, message: HWProtocolMessage) { |
15 pub fn handle(server: &mut HWServer, token: usize, message: HWProtocolMessage) { |
16 match message { |
16 match message { |
17 HWProtocolMessage::Ping => |
17 HWProtocolMessage::Ping => |
18 server.react(token, poll, vec![SendMe(Pong.to_raw_protocol())]), |
18 server.react(token, vec![SendMe(Pong)]), |
19 HWProtocolMessage::Quit(Some(msg)) => |
19 HWProtocolMessage::Quit(Some(msg)) => |
20 server.react(token, poll, vec![ByeClient("User quit: ".to_string() + &msg)]), |
20 server.react(token, vec![ByeClient("User quit: ".to_string() + &msg)]), |
21 HWProtocolMessage::Quit(None) => |
21 HWProtocolMessage::Quit(None) => |
22 server.react(token, poll, vec![ByeClient("User quit".to_string())]), |
22 server.react(token, vec![ByeClient("User quit".to_string())]), |
23 HWProtocolMessage::Malformed => warn!("Malformed/unknown message"), |
23 HWProtocolMessage::Malformed => warn!("Malformed/unknown message"), |
24 HWProtocolMessage::Empty => warn!("Empty message"), |
24 HWProtocolMessage::Empty => warn!("Empty message"), |
25 _ => { |
25 _ => { |
26 if !server.clients[token].room_id.is_some() { |
26 match server.clients[token].room_id { |
27 loggingin::handle(server, token, poll, message); |
27 None => |
28 } else if server.clients[token].room_id == Some(server.lobby_id) { |
28 loggingin::handle(server, token, message), |
29 lobby::handle(server, token, poll, message); |
29 Some(id) if id == server.lobby_id => |
30 } else { |
30 lobby::handle(server, token, message), |
31 inroom::handle(server, token, poll, message); |
31 _ => |
|
32 inroom::handle(server, token, message) |
32 } |
33 } |
33 }, |
34 }, |
34 } |
35 } |
35 } |
36 } |