From 86e450a8351f09a7717149152b1fdda010e4a960 Mon Sep 17 00:00:00 2001 From: timedout Date: Mon, 12 Jan 2026 14:29:35 +0000 Subject: [PATCH] fix: M_BAD_JSON in send_join and send_knock --- src/api/server/send_join.rs | 11 +---------- src/api/server/send_knock.rs | 11 +---------- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/src/api/server/send_join.rs b/src/api/server/send_join.rs index f80ac8fe..7f526d0c 100644 --- a/src/api/server/send_join.rs +++ b/src/api/server/send_join.rs @@ -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"); services .server_keys @@ -204,7 +195,7 @@ async fn create_join_event( let pdu_id = services .rooms .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() .await? .ok_or_else(|| err!(Request(InvalidParam("Could not accept as timeline event."))))?; diff --git a/src/api/server/send_knock.rs b/src/api/server/send_knock.rs index 52550ced..35ba6862 100644 --- a/src/api/server/send_knock.rs +++ b/src/api/server/send_knock.rs @@ -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."))); } - 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()) .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 .rooms .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() .await? .ok_or_else(|| err!(Request(InvalidParam("Could not accept as timeline event."))))?;