Bump ruma to 2ea8b833e3a80c1d650964a1f3e83ee569cf5c0b (RoomVersion -> RoomVersionRules)

<https://github.com/ruma/ruma/pull/2045>

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
This commit is contained in:
Olivia Lee 2025-07-13 22:17:29 -07:00 committed by Jonas Platte
parent c4c294d64c
commit 8c9800735b
No known key found for this signature in database
GPG key ID: 7D261D771D915378
10 changed files with 133 additions and 106 deletions

View file

@ -718,9 +718,12 @@ pub(crate) fn parse_incoming_pdu(
.rooms
.state
.get_create_content::<ExtractVersion>(&room_id)?;
let Some(room_version_rules) = room_version_id.rules() else {
return Err(Error::UnsupportedRoomVersion(room_version_id));
};
let Ok((event_id, value)) =
gen_event_id_canonical_json(pdu, &room_version_id)
gen_event_id_canonical_json(pdu, &room_version_rules)
else {
// Event could not be converted to canonical json
return Err(Error::BadRequest(
@ -1634,8 +1637,12 @@ async fn create_join_event(
// hashes checks
let room_version_id =
services().rooms.state.get_create_content::<ExtractVersion>(room_id)?;
let Some(room_version_rules) = room_version_id.rules() else {
return Err(Error::UnsupportedRoomVersion(room_version_id));
};
let Ok((event_id, value)) =
gen_event_id_canonical_json(pdu, &room_version_id)
gen_event_id_canonical_json(pdu, &room_version_rules)
else {
// Event could not be converted to canonical json
return Err(Error::BadRequest(
@ -1787,6 +1794,10 @@ pub(crate) async fn create_invite_route(
"Server does not support this room version.",
));
}
let room_version_rules = body
.room_version
.rules()
.expect("ruma should support all room versions we advertise");
let mut signed_event =
utils::to_canonical_object(&body.event).map_err(|_| {
@ -1800,7 +1811,7 @@ pub(crate) async fn create_invite_route(
services().globals.server_name().as_str(),
services().globals.keypair(),
&mut signed_event,
&body.room_version,
&room_version_rules.redaction,
)
.map_err(|_| {
Error::BadRequest(ErrorKind::InvalidParam, "Failed to sign event.")
@ -1809,7 +1820,7 @@ pub(crate) async fn create_invite_route(
// Generate event id
let event_id = EventId::parse(format!(
"${}",
ruma::signatures::reference_hash(&signed_event, &body.room_version)
ruma::signatures::reference_hash(&signed_event, &room_version_rules)
.expect("ruma can calculate reference hashes")
))
.expect("ruma's reference hashes are valid event ids");