Skip to content
Snippets Groups Projects
Unverified Commit 5a04559c authored by Timo Kösters's avatar Timo Kösters Committed by Nyaaori
Browse files

fix: maintain server list again

parent 25c3d89f
No related branches found
No related tags found
No related merge requests found
...@@ -124,6 +124,36 @@ fn update_joined_count(&self, room_id: &RoomId) -> Result<()> { ...@@ -124,6 +124,36 @@ fn update_joined_count(&self, room_id: &RoomId) -> Result<()> {
.unwrap() .unwrap()
.insert(room_id.to_owned(), Arc::new(real_users)); .insert(room_id.to_owned(), Arc::new(real_users));
for old_joined_server in self.room_servers(room_id).filter_map(|r| r.ok()) {
if !joined_servers.remove(&old_joined_server) {
// Server not in room anymore
let mut roomserver_id = room_id.as_bytes().to_vec();
roomserver_id.push(0xff);
roomserver_id.extend_from_slice(old_joined_server.as_bytes());
let mut serverroom_id = old_joined_server.as_bytes().to_vec();
serverroom_id.push(0xff);
serverroom_id.extend_from_slice(room_id.as_bytes());
self.roomserverids.remove(&roomserver_id)?;
self.serverroomids.remove(&serverroom_id)?;
}
}
// Now only new servers are in joined_servers anymore
for server in joined_servers {
let mut roomserver_id = room_id.as_bytes().to_vec();
roomserver_id.push(0xff);
roomserver_id.extend_from_slice(server.as_bytes());
let mut serverroom_id = server.as_bytes().to_vec();
serverroom_id.push(0xff);
serverroom_id.extend_from_slice(room_id.as_bytes());
self.roomserverids.insert(&roomserver_id, &[])?;
self.serverroomids.insert(&serverroom_id, &[])?;
}
self.appservice_in_room_cache self.appservice_in_room_cache
.write() .write()
.unwrap() .unwrap()
......
...@@ -39,14 +39,6 @@ pub fn update_membership( ...@@ -39,14 +39,6 @@ pub fn update_membership(
// TODO: displayname, avatar url // TODO: displayname, avatar url
} }
let mut roomserver_id = room_id.as_bytes().to_vec();
roomserver_id.push(0xff);
roomserver_id.extend_from_slice(user_id.server_name().as_bytes());
let mut serverroom_id = user_id.server_name().as_bytes().to_vec();
serverroom_id.push(0xff);
serverroom_id.extend_from_slice(room_id.as_bytes());
match &membership { match &membership {
MembershipState::Join => { MembershipState::Join => {
// Check if the user never joined this room // Check if the user never joined this room
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment