mirror of
https://github.com/element-hq/synapse
synced 2024-09-04 17:10:06 +00:00
Return auth chain when handling send_join
This commit is contained in:
parent
16a0815fac
commit
3b4dec442d
2 changed files with 27 additions and 8 deletions
|
@ -426,8 +426,12 @@ class ReplicationLayer(object):
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_send_join_request(self, origin, content):
|
def on_send_join_request(self, origin, content):
|
||||||
pdu = Pdu(**content)
|
pdu = Pdu(**content)
|
||||||
state = yield self.handler.on_send_join_request(origin, pdu)
|
res_pdus = yield self.handler.on_send_join_request(origin, pdu)
|
||||||
defer.returnValue((200, self._transaction_from_pdus(state).get_dict()))
|
|
||||||
|
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
|
@defer.inlineCallbacks
|
||||||
def make_join(self, destination, context, user_id):
|
def make_join(self, destination, context, user_id):
|
||||||
|
@ -451,11 +455,17 @@ class ReplicationLayer(object):
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.debug("Got content: %s", content)
|
logger.debug("Got content: %s", content)
|
||||||
pdus = [Pdu(outlier=True, **p) for p in content.get("pdus", [])]
|
state = [Pdu(outlier=True, **p) for p in content.get("state", [])]
|
||||||
for pdu in pdus:
|
for pdu in state:
|
||||||
yield self._handle_new_pdu(destination, pdu)
|
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
|
@log_function
|
||||||
def _get_persisted_pdu(self, event_id):
|
def _get_persisted_pdu(self, event_id):
|
||||||
|
|
|
@ -366,10 +366,19 @@ class FederationHandler(BaseHandler):
|
||||||
|
|
||||||
yield self.replication_layer.send_pdu(new_pdu)
|
yield self.replication_layer.send_pdu(new_pdu)
|
||||||
|
|
||||||
defer.returnValue([
|
auth_chain = yield self.store.get_auth_chain(event.event_id)
|
||||||
|
pdu_auth_chain = [
|
||||||
self.pdu_codec.pdu_from_event(e)
|
self.pdu_codec.pdu_from_event(e)
|
||||||
for e in event.state_events.values()
|
for e in auth_chain
|
||||||
])
|
]
|
||||||
|
|
||||||
|
defer.returnValue({
|
||||||
|
"state": [
|
||||||
|
self.pdu_codec.pdu_from_event(e)
|
||||||
|
for e in event.state_events.values()
|
||||||
|
],
|
||||||
|
"auth_chain": pdu_auth_chain,
|
||||||
|
})
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def get_state_for_pdu(self, event_id):
|
def get_state_for_pdu(self, event_id):
|
||||||
|
|
Loading…
Reference in a new issue