Rejoin room over federation if we are not participating in it; do not include invited users in participating servers calculation

This commit is contained in:
Nyaaori 2022-02-13 22:00:36 +00:00
parent aca6218c0a
commit 3b0aa23fdf
No known key found for this signature in database
GPG key ID: E7819C3ED4D1F82E
2 changed files with 7 additions and 4 deletions

View file

@ -474,8 +474,12 @@ async fn join_room_by_id_helper(
); );
let state_lock = mutex_state.lock().await; let state_lock = mutex_state.lock().await;
// Ask a remote server if we don't have this room // Ask a remote server if we are not participating in this room
if !services().rooms.metadata.exists(room_id)? { if !services()
.rooms
.state_cache
.server_in_room(services().globals.server_name(), room_id)?
{
let mut make_join_response_and_server = Err(Error::BadServerResponse( let mut make_join_response_and_server = Err(Error::BadServerResponse(
"No server available to assist in joining.", "No server available to assist in joining.",
)); ));

View file

@ -108,8 +108,7 @@ impl service::rooms::state_cache::Data for KeyValueDatabase {
joinedcount += 1; joinedcount += 1;
} }
for invited in self.room_members_invited(room_id).filter_map(|r| r.ok()) { for _invited in self.room_members_invited(room_id).filter_map(|r| r.ok()) {
joined_servers.insert(invited.server_name().to_owned());
invitedcount += 1; invitedcount += 1;
} }