fix: M_BAD_JSON in send_join and send_knock

This commit is contained in:
timedout 2026-01-12 14:29:35 +00:00
parent 4c796029bb
commit 86e450a835
No known key found for this signature in database
GPG key ID: 0FA334385D0B689F
2 changed files with 2 additions and 20 deletions

View file

@ -178,15 +178,6 @@ async fn create_join_event(
} }
} }
let origin: OwnedServerName = serde_json::from_value(
value
.get("origin")
.ok_or_else(|| err!(Request(BadJson("Event does not have an origin server name."))))?
.clone()
.into(),
)
.map_err(|e| err!(Request(BadJson("Event has an invalid origin server name: {e}"))))?;
trace!("Signing send_join event"); trace!("Signing send_join event");
services services
.server_keys .server_keys
@ -204,7 +195,7 @@ async fn create_join_event(
let pdu_id = services let pdu_id = services
.rooms .rooms
.event_handler .event_handler
.handle_incoming_pdu(&origin, room_id, &event_id, value.clone(), true) .handle_incoming_pdu(sender.server_name(), room_id, &event_id, value.clone(), true)
.boxed() .boxed()
.await? .await?
.ok_or_else(|| err!(Request(InvalidParam("Could not accept as timeline event."))))?; .ok_or_else(|| err!(Request(InvalidParam("Could not accept as timeline event."))))?;

View file

@ -136,15 +136,6 @@ pub(crate) async fn create_knock_event_v1_route(
return Err!(Request(InvalidParam("state_key does not match sender user of event."))); return Err!(Request(InvalidParam("state_key does not match sender user of event.")));
} }
let origin: OwnedServerName = serde_json::from_value(
value
.get("origin")
.ok_or_else(|| err!(Request(BadJson("Event does not have an origin server name."))))?
.clone()
.into(),
)
.map_err(|e| err!(Request(BadJson("Event has an invalid origin server name: {e}"))))?;
let mut event: JsonObject = serde_json::from_str(body.pdu.get()) let mut event: JsonObject = serde_json::from_str(body.pdu.get())
.map_err(|e| err!(Request(InvalidParam("Invalid knock event PDU: {e}"))))?; .map_err(|e| err!(Request(InvalidParam("Invalid knock event PDU: {e}"))))?;
@ -163,7 +154,7 @@ pub(crate) async fn create_knock_event_v1_route(
let pdu_id = services let pdu_id = services
.rooms .rooms
.event_handler .event_handler
.handle_incoming_pdu(&origin, &body.room_id, &event_id, value.clone(), true) .handle_incoming_pdu(sender.server_name(), &body.room_id, &event_id, value.clone(), true)
.boxed() .boxed()
.await? .await?
.ok_or_else(|| err!(Request(InvalidParam("Could not accept as timeline event."))))?; .ok_or_else(|| err!(Request(InvalidParam("Could not accept as timeline event."))))?;