mirror of
https://github.com/element-hq/synapse.git
synced 2026-05-11 19:44:44 +00:00
Ensure state DAG rooms do not federate
- /createRoom requests forcibly set m.federate=false - /send_join requests forcibly bail out for state DAG rooms.
This commit is contained in:
@@ -1108,6 +1108,11 @@ class FederationClient(FederationBase):
|
||||
SynapseError: if the chosen remote server returns a 300/400 code, or
|
||||
no servers successfully handle the request.
|
||||
"""
|
||||
# See related restriction in /createRoom requests in handlers/room.py
|
||||
if room_version.msc4242_state_dags:
|
||||
raise UnsupportedRoomVersionError(
|
||||
"Homeserver does not support this room version over federation"
|
||||
)
|
||||
|
||||
async def send_request(destination: str) -> SendJoinResult:
|
||||
response = await self._do_send_join(
|
||||
|
||||
@@ -1237,6 +1237,10 @@ class RoomCreationHandler:
|
||||
creation_content = config.get("creation_content", {})
|
||||
# override any attempt to set room versions via the creation_content
|
||||
creation_content["room_version"] = room_version.identifier
|
||||
# We do not currently support federating state DAG rooms.
|
||||
# See related restriction in /send_join requests in federation_client.py.
|
||||
if room_version.msc4242_state_dags:
|
||||
creation_content[EventContentFields.FEDERATE] = False
|
||||
|
||||
# trusted private chats have the invited users marked as additional creators
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user