Implement backfill over federation #846

Closed
Nyaaori wants to merge 16 commits from Nyaaori/federation-backfill into next
Showing only changes of commit e3dcb668cf - Show all commits

View file

@ -1106,14 +1106,14 @@ fn get_missing_events(
// event's prev_events. // event's prev_events.
stop_at_events.insert(queued_events[i].clone()); stop_at_events.insert(queued_events[i].clone());
let prev_events = pdu
.get("prev_events")
.ok_or_else(|| Error::bad_database("Event in db has no prev_events field."))?;
queued_events.extend_from_slice( queued_events.extend_from_slice(
&serde_json::from_value::<Vec<OwnedEventId>>( &serde_json::from_value::<Vec<OwnedEventId>>(prev_events.clone().into()).map_err(
serde_json::to_value(pdu.get("prev_events").cloned().ok_or_else(|| { |_| Error::bad_database("Invalid prev_events content in pdu in db."),
Error::bad_database("Event in db has no prev_events field.") )?,
})?)
.expect("canonical json is valid json value"),
)
.map_err(|_| Error::bad_database("Invalid prev_events content in pdu in db."))?,
); );
events.push(PduEvent::convert_to_outgoing_federation_event(pdu)); events.push(PduEvent::convert_to_outgoing_federation_event(pdu));
} }