diff --git a/src/service/rooms/membership/mod.rs b/src/service/rooms/membership/mod.rs index 0f8b816e5..2f9a926c5 100644 --- a/src/service/rooms/membership/mod.rs +++ b/src/service/rooms/membership/mod.rs @@ -1,4 +1,4 @@ -use std::{collections::HashMap, sync::Arc}; +use std::{collections::HashMap, iter::once, sync::Arc}; use conduwuit::{ Err, Event, Pdu, Result, Server, debug, debug_info, debug_warn, defer, err, error, info, @@ -533,6 +533,9 @@ pub async fn join_remote_room( } self.services.outlier.add_pdu_outlier(&event_id, &value); self.services.pdu_metadata.clear_pdu_markers(&event_id); + self.services + .pdu_metadata + .mark_as_referenced(room_id, once(event_id.as_ref())); if let Some(state_key) = &pdu.state_key { let shortstatekey = self .services @@ -565,6 +568,9 @@ pub async fn join_remote_room( trace!(%event_id, "Adding PDU as an outlier from send_join auth_chain"); self.services.outlier.add_pdu_outlier(&event_id, &value); self.services.pdu_metadata.clear_pdu_markers(&event_id); + self.services + .pdu_metadata + .mark_as_referenced(room_id, once(event_id.as_ref())); let state_key = value .get("state_key") .and_then(|s| s.as_str()) @@ -672,7 +678,7 @@ pub async fn join_remote_room( .append_pdu( &parsed_join_pdu, join_event, - std::iter::once(parsed_join_pdu.event_id.as_ref()), + once(parsed_join_pdu.event_id.as_ref()), &state_lock, room_id, ) @@ -698,11 +704,7 @@ pub async fn join_remote_room( info!("Replacing local forward extremities"); self.services .state - .set_forward_extremities( - room_id, - std::iter::once(parsed_join_pdu.event_id()), - &state_lock, - ) + .set_forward_extremities(room_id, once(parsed_join_pdu.event_id()), &state_lock) .await; } drop(cork);