diff --git a/src/api/client_server/membership.rs b/src/api/client_server/membership.rs index e1fcc3bb..6f6fcd72 100644 --- a/src/api/client_server/membership.rs +++ b/src/api/client_server/membership.rs @@ -231,7 +231,7 @@ pub async fn knock_room_route( .to_stripped_state_event() .into(), ); - let stripped_state = utils::convert_stripped_state(stripped_state, &room_id)?; + let stripped_state = utils::convert_stripped_state(stripped_state, &rules)?; services().rooms.state_cache.update_membership( &room_id, diff --git a/src/api/server_server.rs b/src/api/server_server.rs index f03c0890..fa4dcb7d 100644 --- a/src/api/server_server.rs +++ b/src/api/server_server.rs @@ -2169,7 +2169,7 @@ pub async fn create_invite_route( })?; invite_state.push(pdu.to_stripped_state_event().into()); - let invite_state = utils::convert_stripped_state(invite_state, &room_id)?; + let invite_state = utils::convert_stripped_state(invite_state, &rules)?; // If we are active in the room, the remote server will notify us about the join via /send if !services() diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 12ba3d51..f1411016 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -22,7 +22,7 @@ use std::{ time::{SystemTime, UNIX_EPOCH}, }; -use crate::{service::pdu::gen_event_id_canonical_json, services, Result}; +use crate::{service::pdu::gen_event_id_canonical_json, Result}; pub fn millis_since_unix_epoch() -> u64 { SystemTime::now() @@ -202,20 +202,14 @@ impl fmt::Display for HtmlEscape<'_> { /// Converts `RawStrippedState` (federation format) into `Raw` (client format) pub fn convert_stripped_state( stripped_state: Vec, - room_id: &RoomId, + rules: &RoomVersionRules, ) -> Result>> { stripped_state .into_iter() .map(|stripped_state| match stripped_state { RawStrippedState::Stripped(state) => Ok(state.cast()), RawStrippedState::Pdu(state) => { - let rules = services() - .rooms - .state - .get_room_version(room_id)? - .rules() - .expect("Supported room version must have rules."); - let (event_id, mut event) = gen_event_id_canonical_json(&state, &rules)?; + let (event_id, mut event) = gen_event_id_canonical_json(&state, rules)?; event.retain(|k, _| { matches!(