summary refs log tree commit diff
path: root/synapse/federation/transport
diff options
context:
space:
mode:
authorDaniel Wagner-Hall <daniel@matrix.org>2016-02-23 15:11:25 +0000
committerreview.rocks <nobody@review.rocks>2016-02-23 15:11:25 +0000
commit577951b0324f67308f50c14fad703d2103621bc5 (patch)
tree5179d927a8d339151131a1faf79cd79fb8265179 /synapse/federation/transport
parentMerge pull request #600 from matrix-org/erikj/presence (diff)
downloadsynapse-577951b0324f67308f50c14fad703d2103621bc5.tar.xz
Allow third_party_signed to be specified on /join
Diffstat (limited to 'synapse/federation/transport')
-rw-r--r--synapse/federation/transport/server.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/synapse/federation/transport/server.py b/synapse/federation/transport/server.py
index 65e054f7dd..6e92e2f8f4 100644
--- a/synapse/federation/transport/server.py
+++ b/synapse/federation/transport/server.py
@@ -425,7 +425,17 @@ class On3pidBindServlet(BaseFederationServlet):
             last_exception = None
             for invite in content["invites"]:
                 try:
-                    yield self.handler.exchange_third_party_invite(invite)
+                    if "signed" not in invite or "token" not in invite["signed"]:
+                        message = ("Rejecting received notification of third-"
+                                   "party invite without signed: %s" % (invite,))
+                        logger.info(message)
+                        raise SynapseError(400, message)
+                    yield self.handler.exchange_third_party_invite(
+                        invite["sender"],
+                        invite["mxid"],
+                        invite["room_id"],
+                        invite["signed"],
+                    )
                 except Exception as e:
                     last_exception = e
             if last_exception: