diff options
author | Erik Johnston <erik@matrix.org> | 2016-08-30 10:58:46 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-08-30 10:58:46 +0100 |
commit | 68e1a872fd3f7dc3bbd8bfcfcc5e6b88b1170a77 (patch) | |
tree | 35d6a012b2877c4e17e8bd4e621170e18ce420c8 | |
parent | Merge pull request #1049 from matrix-org/erikj/presence_users_in_room (diff) | |
download | synapse-68e1a872fd3f7dc3bbd8bfcfcc5e6b88b1170a77.tar.xz |
Noop get_new_messages_for_device if token hasn't changed
-rw-r--r-- | synapse/handlers/sync.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index 91934b0c81..8a3e04c28a 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -571,15 +571,18 @@ class SyncHandler(object): user_id, device_id, since_stream_id ) - logger.debug("Getting messages up to %d", now_token.to_device_key) - messages, stream_id = yield self.store.get_new_messages_for_device( - user_id, device_id, now_token.to_device_key - ) - logger.debug("Got messages up to %d: %r", stream_id, messages) - sync_result_builder.now_token = now_token.copy_and_replace( - "to_device_key", stream_id - ) - sync_result_builder.to_device = messages + if since_stream_id and since_stream_id == int(now_token.to_device_key): + logger.debug("Getting messages up to %d", now_token.to_device_key) + messages, stream_id = yield self.store.get_new_messages_for_device( + user_id, device_id, now_token.to_device_key + ) + logger.debug("Got messages up to %d: %r", stream_id, messages) + sync_result_builder.now_token = now_token.copy_and_replace( + "to_device_key", stream_id + ) + sync_result_builder.to_device = messages + else: + sync_result_builder.to_device = [] @defer.inlineCallbacks def _generate_sync_entry_for_account_data(self, sync_result_builder): |