aboutsummaryrefslogtreecommitdiff
path: root/src/server/distributor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/distributor.rs')
-rw-r--r--src/server/distributor.rs27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/server/distributor.rs b/src/server/distributor.rs
index 0b9c24d..8023514 100644
--- a/src/server/distributor.rs
+++ b/src/server/distributor.rs
@@ -28,7 +28,8 @@ use crate::{
create::{create_property_request_as_distributor, create_property_update_as_distributor},
parse::find_property_in_property_list,
},
- room::{create::create_room_id_request, parse::parse_room_id_request},
+ redirect_id::RedirectId,
+ room_id_request::RoomIdRequest,
text::Text,
},
constants::*,
@@ -103,23 +104,25 @@ impl Server for Distributor {
trace!("sent buddy list notify to {}: {}", username, buddy.buddy);
}
ROOMIDRQ => {
- let room = parse_room_id_request(msg.to_vec());
- trace!("received room id request from {}: {}", username, &room);
+ let room = RoomIdRequest::parse(msg.to_vec());
+ trace!("received room id request from {}: {}", username, &room.room_name);
let room_id;
- if !room_ids.contains(&room) {
- room_ids.push(room.clone());
- room_id = room_ids.iter().position(|r| r == &room).unwrap();
- debug!("inserted room: {}", room);
+ if !room_ids.contains(&room.room_name) {
+ room_ids.push(room.room_name.clone());
+ room_id = room_ids.iter().position(|r| r == &room.room_name).unwrap();
+ debug!("inserted room: {}", room.room_name);
} else {
- let position = room_ids.iter().position(|r| r == &room).unwrap();
- debug!("found room: {}", room);
+ let position = room_ids.iter().position(|r| r == &room.room_name).unwrap();
+ debug!("found room: {}", room.room_name);
room_id = position;
}
- peer.bytes.get_mut()
- .write_all(&create_room_id_request(&room, room_id as u8)).await?;
- trace!("sent room id redirect to {}: {}", username, room);
+ peer.bytes.get_mut().write_all(&RedirectId {
+ room_name: room.room_name.clone(),
+ room_number: room_id as i8,
+ }.create()).await?;
+ trace!("sent redirect id to {}: {}", username, room.room_name);
}
SESSEXIT => {
trace!("received session exit from {}", username); break;