fix: use get_auth_chain method more often
This commit is contained in:
		
							parent
							
								
									56e5d5e3d2
								
							
						
					
					
						commit
						68cc743f2a
					
				
					 2 changed files with 3 additions and 22 deletions
				
			
		|  | @ -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 = || { | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue