mirror of
https://gitlab.com/famedly/conduit.git
synced 2024-11-04 17:29:14 +01:00
Merge branch 'server-server-opt' into 'master'
Remove unneeded intermediary container collection See merge request famedly/conduit!183
This commit is contained in:
commit
17adf096e9
1 changed files with 21 additions and 26 deletions
|
@ -1397,39 +1397,34 @@ async fn upgrade_outlier_to_timeline_pdu(
|
||||||
extremity_sstatehashes.insert(sstatehash, prev_event);
|
extremity_sstatehashes.insert(sstatehash, prev_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut fork_states = Vec::new();
|
|
||||||
|
|
||||||
if okay {
|
if okay {
|
||||||
for (sstatehash, prev_event) in extremity_sstatehashes {
|
let fork_states: Vec<_> = extremity_sstatehashes
|
||||||
let mut leaf_state = db
|
|
||||||
.rooms
|
|
||||||
.state_full_ids(sstatehash)
|
|
||||||
.map_err(|_| "Failed to ask db for room state.".to_owned())?;
|
|
||||||
|
|
||||||
if let Some(state_key) = &prev_event.state_key {
|
|
||||||
let shortstatekey = db
|
|
||||||
.rooms
|
|
||||||
.get_or_create_shortstatekey(&prev_event.kind, state_key, &db.globals)
|
|
||||||
.map_err(|_| "Failed to create shortstatekey.".to_owned())?;
|
|
||||||
leaf_state.insert(shortstatekey, Arc::new(prev_event.event_id.clone()));
|
|
||||||
// Now it's the state after the pdu
|
|
||||||
}
|
|
||||||
|
|
||||||
fork_states.push(leaf_state);
|
|
||||||
}
|
|
||||||
|
|
||||||
let fork_states = &fork_states
|
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|map| {
|
.map(|(sstatehash, prev_event)| {
|
||||||
map.into_iter()
|
let mut leaf_state = db
|
||||||
|
.rooms
|
||||||
|
.state_full_ids(sstatehash)
|
||||||
|
.map_err(|_| "Failed to ask db for room state.".to_owned())?;
|
||||||
|
|
||||||
|
if let Some(state_key) = &prev_event.state_key {
|
||||||
|
let shortstatekey = db
|
||||||
|
.rooms
|
||||||
|
.get_or_create_shortstatekey(&prev_event.kind, state_key, &db.globals)
|
||||||
|
.map_err(|_| "Failed to create shortstatekey.".to_owned())?;
|
||||||
|
leaf_state.insert(shortstatekey, Arc::new(prev_event.event_id.clone()));
|
||||||
|
// Now it's the state after the pdu
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf_state
|
||||||
|
.into_iter()
|
||||||
.map(|(k, id)| (db.rooms.get_statekey_from_short(k).map(|k| (k, id))))
|
.map(|(k, id)| (db.rooms.get_statekey_from_short(k).map(|k| (k, id))))
|
||||||
.collect::<Result<StateMap<_>>>()
|
.collect::<Result<StateMap<_>>>()
|
||||||
|
.map_err(|_| "Failed to get_statekey_from_short.".to_owned())
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>>>()
|
.collect::<StdResult<_, _>>()?;
|
||||||
.map_err(|_| "Failed to get_statekey_from_short.".to_owned())?;
|
|
||||||
|
|
||||||
let mut auth_chain_sets = Vec::new();
|
let mut auth_chain_sets = Vec::new();
|
||||||
for state in fork_states {
|
for state in &fork_states {
|
||||||
auth_chain_sets.push(
|
auth_chain_sets.push(
|
||||||
get_auth_chain(
|
get_auth_chain(
|
||||||
&room_id,
|
&room_id,
|
||||||
|
|
Loading…
Reference in a new issue