Browse Source

Add ParentMinSpeedResponse.

wip
Titouan Rigoudy 9 years ago
parent
commit
c2c69a3e1a
2 changed files with 48 additions and 5 deletions
  1. +34
    -0
      src/proto/server.rs
  2. +14
    -5
      src/server.rs

+ 34
- 0
src/proto/server.rs View File

@ -8,11 +8,16 @@ use super::Packet;
const CODE_LOGIN: u32 = 1;
const CODE_ROOM_LIST: u32 = 64;
const CODE_PARENT_MIN_SPEED: u32 = 83;
trait WriteToPacket {
fn write_to_packet(&self, &mut Packet) -> io::Result<()>;
}
/*================*
* SERVER REQUEST *
*================*/
pub enum ServerRequest {
LoginRequest(LoginRequest),
RoomListRequest(RoomListRequest),
@ -32,10 +37,17 @@ impl ServerRequest {
}
}
/*=================*
* SERVER RESPONSE *
*=================*/
pub enum ServerResponse {
LoginResponse(LoginResponse),
RoomListResponse(RoomListResponse),
// Unused/unknown responses
ParentMinSpeedResponse(ParentMinSpeedResponse),
UnknownResponse(u32, Packet),
}
@ -50,6 +62,10 @@ impl ServerResponse {
try!(RoomListResponse::from_packet(packet))
),
CODE_PARENT_MIN_SPEED => ServerResponse::ParentMinSpeedResponse(
try!(ParentMinSpeedResponse::from_packet(packet))
),
code => ServerResponse::UnknownResponse(code, packet),
};
Ok(resp)
@ -212,3 +228,21 @@ impl RoomListResponse {
Ok(rooms)
}
}
/*==================*
* PARENT MIN SPEED *
*==================*/
pub struct ParentMinSpeedResponse {
pub value: u32,
}
impl ParentMinSpeedResponse {
fn from_packet(mut packet: Packet) -> io::Result<Self> {
let value = try!(packet.read_uint());
Ok(ParentMinSpeedResponse {
value: value,
})
}
}

+ 14
- 5
src/server.rs View File

@ -72,11 +72,14 @@ impl ServerConnection {
fn handle_server_response(&mut self, response: ServerResponse) {
match response {
ServerResponse::LoginResponse(login_response) =>
self.handle_login_response(login_response),
ServerResponse::LoginResponse(response) =>
self.handle_login_response(response),
ServerResponse::RoomListResponse(room_list_response) =>
self.handle_room_list_response(room_list_response),
ServerResponse::RoomListResponse(response) =>
self.handle_room_list_response(response),
ServerResponse::ParentMinSpeedResponse(response) =>
self.handle_parent_min_speed_response(response),
ServerResponse::UnknownResponse(code, _) =>
warn!("Unknown packet code {}", code),
@ -104,7 +107,7 @@ impl ServerConnection {
info!("External IP address: {}", ip);
match password_md5_opt {
Some(password_md5) => {
Some(_) => {
info!(concat!(
"Connected to official server ",
"as official client"));
@ -133,6 +136,12 @@ impl ServerConnection {
info!("Room \"{}\" has {} members", room_name, num_members);
}
}
fn handle_parent_min_speed_response(
&mut self, response: ParentMinSpeedResponse) {
debug!("Received ParentMinSpeedResponse with value {}",
response.value);
}
}
impl Handler for ServerConnection {


Loading…
Cancel
Save