From cffe48d2dc6e0240ce6f98835246391fb3aa844b Mon Sep 17 00:00:00 2001 From: strawberry Date: Sun, 21 Apr 2024 18:26:32 -0400 Subject: [PATCH] add federation allowed checks on get remote pdu list Signed-off-by: strawberry --- src/service/admin/debug/debug_commands.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/service/admin/debug/debug_commands.rs b/src/service/admin/debug/debug_commands.rs index d4a82c2a..aae4b948 100644 --- a/src/service/admin/debug/debug_commands.rs +++ b/src/service/admin/debug/debug_commands.rs @@ -103,6 +103,18 @@ pub(super) async fn get_pdu(_body: Vec<&str>, event_id: Box) -> Result< pub(super) async fn get_remote_pdu_list( body: Vec<&str>, server: Box, force: bool, ) -> Result { + if !services().globals.config.allow_federation { + return Ok(RoomMessageEventContent::text_plain( + "Federation is disabled on this homeserver.", + )); + } + + if server == services().globals.server_name() { + return Ok(RoomMessageEventContent::text_plain( + "Not allowed to send federation requests to ourselves. Please use `get-pdu` for fetching local PDUs.", + )); + } + if body.len() > 2 && body[0].trim().starts_with("```") && body.last().unwrap().trim() == "```" { let list = body .clone()