|
|
@ -17,6 +17,7 @@ trait WriteToPacket { |
|
|
#[derive(Debug)]
|
|
|
#[derive(Debug)]
|
|
|
pub enum ServerRequest {
|
|
|
pub enum ServerRequest {
|
|
|
LoginRequest(LoginRequest),
|
|
|
LoginRequest(LoginRequest),
|
|
|
|
|
|
PeerAddressRequest(PeerAddressRequest),
|
|
|
RoomListRequest(RoomListRequest),
|
|
|
RoomListRequest(RoomListRequest),
|
|
|
SetListenPortRequest(SetListenPortRequest),
|
|
|
SetListenPortRequest(SetListenPortRequest),
|
|
|
}
|
|
|
}
|
|
|
@ -27,6 +28,9 @@ impl ServerRequest { |
|
|
ServerRequest::LoginRequest(ref request) =>
|
|
|
ServerRequest::LoginRequest(ref request) =>
|
|
|
(Packet::new(CODE_LOGIN), request),
|
|
|
(Packet::new(CODE_LOGIN), request),
|
|
|
|
|
|
|
|
|
|
|
|
ServerRequest::PeerAddressRequest(ref request) =>
|
|
|
|
|
|
(Packet::new(CODE_PEER_ADDRESS), request),
|
|
|
|
|
|
|
|
|
ServerRequest::RoomListRequest(ref request) =>
|
|
|
ServerRequest::RoomListRequest(ref request) =>
|
|
|
(Packet::new(CODE_ROOM_LIST), request),
|
|
|
(Packet::new(CODE_ROOM_LIST), request),
|
|
|
|
|
|
|
|
|
@ -87,6 +91,30 @@ impl WriteToPacket for LoginRequest { |
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*==============*
|
|
|
|
|
|
* PEER ADDRESS *
|
|
|
|
|
|
*==============*/
|
|
|
|
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
|
|
pub struct PeerAddressRequest {
|
|
|
|
|
|
username: String,
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
impl PeerAddressRequest {
|
|
|
|
|
|
fn new(username: &str) -> Self {
|
|
|
|
|
|
PeerAddressRequest {
|
|
|
|
|
|
username: username.to_string(),
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
impl WriteToPacket for PeerAddressRequest {
|
|
|
|
|
|
fn write_to_packet(&self, packet: &mut Packet) -> io::Result<()> {
|
|
|
|
|
|
try!(packet.write_str(&self.username));
|
|
|
|
|
|
Ok(())
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/*===========*
|
|
|
/*===========*
|
|
|
* ROOM LIST *
|
|
|
* ROOM LIST *
|
|
|
*===========*/
|
|
|
*===========*/
|
|
|
|