equal
deleted
inserted
replaced
10 pub enum Action { |
10 pub enum Action { |
11 SendMe(String), |
11 SendMe(String), |
12 RemoveClient, |
12 RemoveClient, |
13 ByeClient(String), |
13 ByeClient(String), |
14 ReactProtocolMessage(HWProtocolMessage), |
14 ReactProtocolMessage(HWProtocolMessage), |
|
15 CheckRegistered, |
|
16 JoinLobby, |
15 } |
17 } |
16 |
18 |
17 use self::Action::*; |
19 use self::Action::*; |
18 |
20 |
19 pub fn run_action(server: &mut HWServer, token: mio::Token, poll: &mio::Poll, action: Action) { |
21 pub fn run_action(server: &mut HWServer, token: mio::Token, poll: &mio::Poll, action: Action) { |
30 server.clients[token].deregister(poll); |
32 server.clients[token].deregister(poll); |
31 server.clients.remove(token); |
33 server.clients.remove(token); |
32 }, |
34 }, |
33 ReactProtocolMessage(msg) => |
35 ReactProtocolMessage(msg) => |
34 handlers::handle(server, token, poll, msg), |
36 handlers::handle(server, token, poll, msg), |
|
37 CheckRegistered => |
|
38 if server.clients[token].protocolNumber > 0 && server.clients[token].nick != "" { |
|
39 server.react(token, poll, vec![ |
|
40 JoinLobby, |
|
41 ]); |
|
42 }, |
|
43 JoinLobby => { |
|
44 let msg_string = LobbyJoined(&[&server.clients[token].nick]).to_raw_protocol(); |
|
45 server.react(token, poll, vec![ |
|
46 SendMe(msg_string), |
|
47 ]); |
|
48 }, |
35 //_ => unimplemented!(), |
49 //_ => unimplemented!(), |
36 } |
50 } |
37 } |
51 } |