summary refs log tree commit diff
path: root/synapse/federation/federation_server.py
diff options
context:
space:
mode:
authorErik Johnston <erikj@jki.re>2019-02-25 15:53:10 +0000
committerGitHub <noreply@github.com>2019-02-25 15:53:10 +0000
commitb1a90da82e56d9702e4510fad365377d87908f1c (patch)
treecef37b64de3da97c49493ba5e6f114b0a98af33c /synapse/federation/federation_server.py
parentMerge pull request #4722 from matrix-org/erikj/correctly_handle_keyring_excep... (diff)
parentNewsfile (diff)
downloadsynapse-b1a90da82e56d9702e4510fad365377d87908f1c.tar.xz
Merge pull request #4721 from matrix-org/erikj/msc_1866
MSC 1866 - Use M_UNSUPPORTED_ROOM_VERSION for invite API
Diffstat (limited to 'synapse/federation/federation_server.py')
-rw-r--r--synapse/federation/federation_server.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py
index 3da86d4ba6..e44342bc85 100644
--- a/synapse/federation/federation_server.py
+++ b/synapse/federation/federation_server.py
@@ -25,9 +25,10 @@ from twisted.internet import defer
 from twisted.internet.abstract import isIPAddress
 from twisted.python import failure
 
-from synapse.api.constants import EventTypes, Membership
+from synapse.api.constants import KNOWN_ROOM_VERSIONS, EventTypes, Membership
 from synapse.api.errors import (
     AuthError,
+    Codes,
     FederationError,
     IncompatibleRoomVersionError,
     NotFoundError,
@@ -386,6 +387,13 @@ class FederationServer(FederationBase):
 
     @defer.inlineCallbacks
     def on_invite_request(self, origin, content, room_version):
+        if room_version not in KNOWN_ROOM_VERSIONS:
+            raise SynapseError(
+                400,
+                "Homeserver does not support this room version",
+                Codes.UNSUPPORTED_ROOM_VERSION,
+            )
+
         format_ver = room_version_to_event_format(room_version)
 
         pdu = event_from_pdu_json(content, format_ver)