Check PDU formats
This commit is contained in:
@@ -225,6 +225,8 @@ pub async fn join_remote(
|
||||
.server_keys
|
||||
.gen_id_hash_and_sign_event(&mut join_event_stub, &room_version_id)?;
|
||||
|
||||
state_res::check_pdu_format(&join_event_stub, &room_version_rules.event_format)?;
|
||||
|
||||
// It has enough fields to be called a proper event now
|
||||
let mut join_event = join_event_stub;
|
||||
|
||||
@@ -634,6 +636,8 @@ pub async fn join_local(
|
||||
));
|
||||
}
|
||||
|
||||
let room_version_rules = room_version::rules(&room_version_id)?;
|
||||
|
||||
let mut join_event_stub: CanonicalJsonObject =
|
||||
serde_json::from_str(make_join_response.event.get()).map_err(|e| {
|
||||
err!(BadServerResponse("Invalid make_join event json received from server: {e:?}"))
|
||||
@@ -699,6 +703,8 @@ pub async fn join_local(
|
||||
.server_keys
|
||||
.gen_id_hash_and_sign_event(&mut join_event_stub, &room_version_id)?;
|
||||
|
||||
state_res::check_pdu_format(&join_event_stub, &room_version_rules.event_format)?;
|
||||
|
||||
// It has enough fields to be called a proper event now
|
||||
let join_event = join_event_stub;
|
||||
|
||||
|
||||
@@ -11,8 +11,9 @@ use ruma::{
|
||||
};
|
||||
use tuwunel_core::{
|
||||
Err, Result, debug_info, debug_warn, err, implement,
|
||||
matrix::PduCount,
|
||||
matrix::{PduCount, room_version},
|
||||
pdu::PduBuilder,
|
||||
state_res,
|
||||
utils::{self, FutureBoolExt, future::ReadyBoolExt},
|
||||
warn,
|
||||
};
|
||||
@@ -278,6 +279,8 @@ async fn remote_leave(&self, user_id: &UserId, room_id: &RoomId) -> Result {
|
||||
)));
|
||||
}
|
||||
|
||||
let room_version_rules = room_version::rules(&room_version_id)?;
|
||||
|
||||
let mut leave_event_stub = serde_json::from_str::<CanonicalJsonObject>(
|
||||
make_leave_response.event.get(),
|
||||
)
|
||||
@@ -312,6 +315,8 @@ async fn remote_leave(&self, user_id: &UserId, room_id: &RoomId) -> Result {
|
||||
.server_keys
|
||||
.gen_id_hash_and_sign_event(&mut leave_event_stub, &room_version_id)?;
|
||||
|
||||
state_res::check_pdu_format(&leave_event_stub, &room_version_rules.event_format)?;
|
||||
|
||||
// It has enough fields to be called a proper event now
|
||||
let leave_event = leave_event_stub;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user