From 1d80b7ce0cbe2075095b5bf2bee059384d7119f0 Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Sat, 20 Sep 2025 18:20:40 +0100 Subject: [PATCH] fix: Don't perform local join when there's no remote servers --- src/api/client/membership/join.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/api/client/membership/join.rs b/src/api/client/membership/join.rs index b2002dbb..9e222f82 100644 --- a/src/api/client/membership/join.rs +++ b/src/api/client/membership/join.rs @@ -3,7 +3,7 @@ use std::{borrow::Borrow, collections::HashMap, iter::once, sync::Arc}; use axum::extract::State; use axum_client_ip::InsecureClientIp; use conduwuit::{ - Err, Result, debug, debug_info, debug_warn, err, error, info, + Err, Error, Result, debug, debug_info, debug_warn, err, error, info, matrix::{ StateKey, event::{gen_event_id, gen_event_id_canonical_json}, @@ -313,11 +313,14 @@ pub async fn join_room_by_id_helper( } } - let local_join = server_in_room - || servers.is_empty() - || (servers.len() == 1 && services.globals.server_is_ours(&servers[0])); + if !server_in_room && servers.is_empty() { + return Err!(Request(NotFound( + "No servers were provided to assist in joining the room remotely, and we are not \ + already participating in the room." + ))); + } - if local_join { + if server_in_room { join_room_by_id_helper_local( services, sender_user,