fix: use get_auth_chain method more often

next
Timo Kösters 2021-07-20 18:45:21 +02:00
parent 56e5d5e3d2
commit 68cc743f2a
No known key found for this signature in database
GPG Key ID: 24DA7517711A2BA4
2 changed files with 3 additions and 22 deletions

View File

@ -267,7 +267,8 @@ async fn sync_helper(
Error::bad_database("Found PDU without state")
})
})
.transpose()?.transpose()?;
.transpose()?
.transpose()?;
// Calculates joined_member_count, invited_member_count and heroes
let calculate_counts = || {

View File

@ -2198,27 +2198,7 @@ pub async fn create_join_event_route(
drop(mutex_lock);
let state_ids = db.rooms.state_full_ids(shortstatehash)?;
let mut auth_chain_ids = HashSet::<EventId>::new();
let mut todo = state_ids.iter().cloned().collect::<HashSet<_>>();
while let Some(event_id) = todo.iter().next().cloned() {
if let Some(pdu) = db.rooms.get_pdu(&event_id)? {
todo.extend(
pdu.auth_events
.clone()
.into_iter()
.collect::<HashSet<_>>()
.difference(&auth_chain_ids)
.cloned(),
);
auth_chain_ids.extend(pdu.auth_events.clone().into_iter());
} else {
warn!("Could not find pdu mentioned in auth events.");
}
todo.remove(&event_id);
}
let auth_chain_ids = get_auth_chain(state_ids.iter().cloned().collect(), &db)?;
for server in db
.rooms