diff options
author | Erik Johnston <erik@matrix.org> | 2014-10-31 09:59:02 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2014-10-31 09:59:02 +0000 |
commit | f2de2d644af80557baebf43f64f3968b8ab46d0b (patch) | |
tree | a48a9d95a86ca36da5025d9b36c464cf412e91d1 /synapse/handlers | |
parent | Merge branch 'develop' of github.com:matrix-org/synapse into federation_autho... (diff) | |
download | synapse-f2de2d644af80557baebf43f64f3968b8ab46d0b.tar.xz |
Move the impl of backfill to use events.
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/federation.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index 1daeee833b..9f457ce292 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -181,7 +181,17 @@ class FederationHandler(BaseHandler): @log_function @defer.inlineCallbacks def backfill(self, dest, room_id, limit): - pdus = yield self.replication_layer.backfill(dest, room_id, limit) + extremities = yield self.store.get_oldest_events_in_room(room_id) + + pdus = yield self.replication_layer.backfill( + dest, + room_id, + limit, + extremities=[ + self.pdu_codec.decode_event_id(e) + for e in extremities + ] + ) events = [] @@ -390,6 +400,21 @@ class FederationHandler(BaseHandler): else: defer.returnValue([]) + @defer.inlineCallbacks + @log_function + def on_backfill_request(self, context, pdu_list, limit): + + events = yield self.store.get_backfill_events( + context, + [self.pdu_codec.encode_event_id(i, o) for i, o in pdu_list], + limit + ) + + defer.returnValue([ + self.pdu_codec.pdu_from_event(e) + for e in events + ]) + @log_function def _on_user_joined(self, user, room_id): waiters = self.waiting_for_join_list.get((user.to_string(), room_id), []) |