summary refs log tree commit diff
path: root/synapse/federation/federation_server.py
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2017-04-03 16:23:23 +0100
committerRichard van der Hoff <richard@matrix.org>2017-04-03 16:23:23 +0100
commit2d05eb3cf580753ba643410225e883e4d83ecf23 (patch)
tree1c466950d045657c5440da3fa796e7849a3a29b6 /synapse/federation/federation_server.py
parentMerge branch 'release-v0.20.0' of github.com:matrix-org/synapse into develop (diff)
parentMerge pull request #2094 from matrix-org/rav/fix_federation_join (diff)
downloadsynapse-2d05eb3cf580753ba643410225e883e4d83ecf23.tar.xz
Merge remote-tracking branch 'origin/release-v0.20.0' into develop
Diffstat (limited to 'synapse/federation/federation_server.py')
-rw-r--r--synapse/federation/federation_server.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py
index 510a176821..bc20b9c201 100644
--- a/synapse/federation/federation_server.py
+++ b/synapse/federation/federation_server.py
@@ -146,11 +146,15 @@ class FederationServer(FederationBase):
             # check that it's actually being sent from a valid destination to
             # workaround bug #1753 in 0.18.5 and 0.18.6
             if transaction.origin != get_domain_from_id(pdu.event_id):
+                # We continue to accept join events from any server; this is
+                # necessary for the federation join dance to work correctly.
+                # (When we join over federation, the "helper" server is
+                # responsible for sending out the join event, rather than the
+                # origin. See bug #1893).
                 if not (
                     pdu.type == 'm.room.member' and
                     pdu.content and
-                    pdu.content.get("membership", None) == 'join' and
-                    self.hs.is_mine_id(pdu.state_key)
+                    pdu.content.get("membership", None) == 'join'
                 ):
                     logger.info(
                         "Discarding PDU %s from invalid origin %s",