summary refs log tree commit diff
path: root/synapse/federation/replication.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2014-11-07 11:22:12 +0000
committerErik Johnston <erik@matrix.org>2014-11-07 11:22:12 +0000
commit3b4dec442da51c6c999dd946db6ea6ce5f07ff0c (patch)
treeaad98c0fe05b4e403db5c37591124c1557ef3d22 /synapse/federation/replication.py
parentFix bug in _get_auth_chain_txn (diff)
downloadsynapse-3b4dec442da51c6c999dd946db6ea6ce5f07ff0c.tar.xz
Return auth chain when handling send_join
Diffstat (limited to 'synapse/federation/replication.py')
-rw-r--r--synapse/federation/replication.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/synapse/federation/replication.py b/synapse/federation/replication.py
index 92a9678e2c..d1eddf249d 100644
--- a/synapse/federation/replication.py
+++ b/synapse/federation/replication.py
@@ -426,8 +426,12 @@ class ReplicationLayer(object):
     @defer.inlineCallbacks
     def on_send_join_request(self, origin, content):
         pdu = Pdu(**content)
-        state = yield self.handler.on_send_join_request(origin, pdu)
-        defer.returnValue((200, self._transaction_from_pdus(state).get_dict()))
+        res_pdus = yield self.handler.on_send_join_request(origin, pdu)
+
+        defer.returnValue((200, {
+            "state": [p.get_dict() for p in res_pdus["state"]],
+            "auth_chain": [p.get_dict() for p in res_pdus["auth_chain"]],
+        }))
 
     @defer.inlineCallbacks
     def make_join(self, destination, context, user_id):
@@ -451,11 +455,17 @@ class ReplicationLayer(object):
         )
 
         logger.debug("Got content: %s", content)
-        pdus = [Pdu(outlier=True, **p) for p in content.get("pdus", [])]
-        for pdu in pdus:
+        state = [Pdu(outlier=True, **p) for p in content.get("state", [])]
+        for pdu in state:
             yield self._handle_new_pdu(destination, pdu)
 
-        defer.returnValue(pdus)
+        auth_chain = [
+            Pdu(outlier=True, **p) for p in content.get("auth_chain", [])
+        ]
+        for pdu in auth_chain:
+            yield self._handle_new_pdu(destination, pdu)
+
+        defer.returnValue(state)
 
     @log_function
     def _get_persisted_pdu(self, event_id):