From d65e560e87dcf09ea2c27dcd48226f42b6bfebf5 Mon Sep 17 00:00:00 2001 From: timedout Date: Fri, 10 Jul 2026 20:59:38 +0100 Subject: [PATCH] style: Remove duplicate pdu check 1 call in handle_incoming_pdu --- .../rooms/event_handler/handle_incoming_pdu.rs | 12 +++--------- .../rooms/event_handler/handle_outlier_pdu.rs | 3 +-- src/service/rooms/event_handler/mod.rs | 16 ---------------- 3 files changed, 4 insertions(+), 27 deletions(-) diff --git a/src/service/rooms/event_handler/handle_incoming_pdu.rs b/src/service/rooms/event_handler/handle_incoming_pdu.rs index 2c00c527f..e8da06bd6 100644 --- a/src/service/rooms/event_handler/handle_incoming_pdu.rs +++ b/src/service/rooms/event_handler/handle_incoming_pdu.rs @@ -5,15 +5,16 @@ use conduwuit::{ Err, Event, Result, debug, debug_error, debug_warn, defer, error, matrix::PartialPdu, - result::DebugInspect, trace, utils::time::jitter, warn, + result::DebugInspect, trace, utils::time::jitter, }; use futures::{FutureExt, StreamExt, future::try_join3}; use ruma::{CanonicalJsonValue, EventId, RoomId, ServerName, UserId}; use tokio::sync::mpsc; -use crate::rooms::timeline::{RawPduId, pdu_fits}; +use crate::rooms::timeline::RawPduId; impl super::Service { + /// Handles an incoming PDU from federation. #[tracing::instrument( name = "pdu", skip_all, @@ -32,13 +33,6 @@ pub async fn handle_incoming_pdu<'a>( if let Ok(pdu_id) = self.services.timeline.get_pdu_id(event_id).await { return Ok(Some(pdu_id)); } - if !pdu_fits(&value) { - warn!( - "dropping incoming PDU {event_id} in room {room_id} from {origin} because it \ - exceeds 65535 bytes or is otherwise too large." - ); - return Err!(Request(TooLarge("PDU is too large"))); - } trace!( "processing incoming PDU from {origin} for room {room_id} with event id {event_id}" ); diff --git a/src/service/rooms/event_handler/handle_outlier_pdu.rs b/src/service/rooms/event_handler/handle_outlier_pdu.rs index fe19f503f..af53043f9 100644 --- a/src/service/rooms/event_handler/handle_outlier_pdu.rs +++ b/src/service/rooms/event_handler/handle_outlier_pdu.rs @@ -5,7 +5,7 @@ }; use ruma::{CanonicalJsonObject, CanonicalJsonValue, EventId, OwnedEventId, RoomId, ServerName}; -use super::{check_room_id, get_room_version_rules}; +use super::get_room_version_rules; impl super::Service { /// Handles a PDU as an outlier, performing basic checks like signatures and @@ -39,7 +39,6 @@ pub(super) async fn handle_outlier_pdu<'a, Pdu>( "event_id".to_owned(), CanonicalJsonValue::String(event_id.as_str().to_owned()), ); - check_room_id(room_id, &pdu_event)?; return Ok((pdu_event, value)); } diff --git a/src/service/rooms/event_handler/mod.rs b/src/service/rooms/event_handler/mod.rs index d567ce224..b21f2fe2e 100644 --- a/src/service/rooms/event_handler/mod.rs +++ b/src/service/rooms/event_handler/mod.rs @@ -115,22 +115,6 @@ async fn event_fetch(&self, event_id: OwnedEventId) -> Option { } } -fn check_room_id(room_id: &RoomId, pdu: &Pdu) -> Result { - if pdu - .room_id() - .is_some_and(|claimed_room_id| claimed_room_id != room_id) - { - return Err!(Request(InvalidParam(error!( - pdu_event_id = %pdu.event_id(), - pdu_room_id = pdu.room_id().map(tracing::field::display), - %room_id, - "Found event from room in room", - )))); - } - - Ok(()) -} - fn get_room_version_rules(create_event: &Pdu) -> Result { let content: RoomCreateEventContent = create_event.get_content()?; let Some(room_version_rules) = content.room_version.rules() else {