|
|
|
|
@ -1016,10 +1016,11 @@ pub fn handle_incoming_pdu<'a>(
@@ -1016,10 +1016,11 @@ pub fn handle_incoming_pdu<'a>(
|
|
|
|
|
// 8. if not timeline event: stop
|
|
|
|
|
if !is_timeline_event |
|
|
|
|
|| incoming_pdu.origin_server_ts |
|
|
|
|
< (utils::millis_since_unix_epoch() - 1000 * 60 * 20) |
|
|
|
|
.try_into() |
|
|
|
|
.expect("time is valid") |
|
|
|
|
// Not older than 20 mins
|
|
|
|
|
< db.rooms |
|
|
|
|
.first_pdu_in_room(&room_id) |
|
|
|
|
.map_err(|_| "Error loading first room event.".to_owned())? |
|
|
|
|
.expect("Room exists") |
|
|
|
|
.origin_server_ts |
|
|
|
|
{ |
|
|
|
|
let elapsed = start_time.elapsed(); |
|
|
|
|
warn!( |
|
|
|
|
@ -1031,6 +1032,7 @@ pub fn handle_incoming_pdu<'a>(
@@ -1031,6 +1032,7 @@ pub fn handle_incoming_pdu<'a>(
|
|
|
|
|
return Ok(None); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// TODO: make not recursive
|
|
|
|
|
// 9. Fetch any missing prev events doing all checks listed here starting at 1. These are timeline events
|
|
|
|
|
fetch_and_handle_events( |
|
|
|
|
db, |
|
|
|
|
|