From adc4e4056650fdddc17ebc3bf36beee8503495fa Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Sun, 21 Feb 2016 18:10:49 +0100 Subject: [PATCH] Add PrivilegedUsersResponse. --- src/proto/server.rs | 25 +++++++++++++++++++++++++ src/server.rs | 20 ++++++++++++++------ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/proto/server.rs b/src/proto/server.rs index 2857e60..f874221 100644 --- a/src/proto/server.rs +++ b/src/proto/server.rs @@ -8,6 +8,7 @@ use super::Packet; const CODE_LOGIN: u32 = 1; const CODE_ROOM_LIST: u32 = 64; +const CODE_PRIVILEGED_USERS: u32 = 69; const CODE_PARENT_MIN_SPEED: u32 = 83; const CODE_PARENT_SPEED_RATIO: u32 = 84; const CODE_WISHLIST_INTERVAL: u32 = 104; @@ -47,6 +48,7 @@ impl ServerRequest { #[derive(Debug)] pub enum ServerResponse { LoginResponse(LoginResponse), + PrivilegedUsersResponse(PrivilegedUsersResponse), RoomListResponse(RoomListResponse), WishlistIntervalResponse(WishlistIntervalResponse), @@ -66,6 +68,11 @@ impl ServerResponse { try!(LoginResponse::from_packet(&mut packet)) ), + CODE_PRIVILEGED_USERS => + ServerResponse::PrivilegedUsersResponse( + try!(PrivilegedUsersResponse::from_packet(&mut packet)) + ), + CODE_ROOM_LIST => ServerResponse::RoomListResponse( try!(RoomListResponse::from_packet(&mut packet)) @@ -332,3 +339,21 @@ impl WishlistIntervalResponse { }) } } + +/*==================* + * PRIVILEGED USERS * + *==================*/ + +#[derive(Debug)] +pub struct PrivilegedUsersResponse { + pub users: Vec, +} + +impl PrivilegedUsersResponse { + fn from_packet(packet: &mut Packet) -> io::Result { + let users = try!(packet.read_array_with(Packet::read_str)); + Ok(PrivilegedUsersResponse { + users: users, + }) + } +} diff --git a/src/server.rs b/src/server.rs index ddc1651..0301d03 100644 --- a/src/server.rs +++ b/src/server.rs @@ -80,6 +80,9 @@ impl ServerConnection { ServerResponse::LoginResponse(response) => self.handle_login_response(response), + ServerResponse::PrivilegedUsersResponse(response) => + self.handle_privileged_users_response(response), + ServerResponse::RoomListResponse(response) => self.handle_room_list_response(response), @@ -134,12 +137,17 @@ impl ServerConnection { } } - fn handle_room_list_response(&mut self, - room_list_response: RoomListResponse) { - info!("Received room list"); - for (ref room_name, num_members) in room_list_response.rooms { - info!("Room \"{}\" has {} members", room_name, num_members); - } + fn handle_room_list_response( + &mut self, response: RoomListResponse) + { + info!("Received room list: {} rooms total", response.rooms.len()); + } + + fn handle_privileged_users_response( + &mut self, response: PrivilegedUsersResponse) + { + info!("Received privileged users list: {} privileged users total", + response.users.len()); } }