summary refs log tree commit diff
path: root/synapse/storage/deviceinbox.py
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2016-09-02 15:50:37 +0100
committerMark Haines <mark.haines@matrix.org>2016-09-02 15:50:37 +0100
commit65fa37ac5e8b3e661b853b71cfe6a264d5369bdc (patch)
treeac9b722feadcaf8e88b231633a39e8525c37c884 /synapse/storage/deviceinbox.py
parentMerge pull request #1062 from matrix-org/markjh/direct_to_device_synchrotron (diff)
downloadsynapse-65fa37ac5e8b3e661b853b71cfe6a264d5369bdc.tar.xz
Only return new device messages in /sync
Diffstat (limited to '')
-rw-r--r--synapse/storage/deviceinbox.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/synapse/storage/deviceinbox.py b/synapse/storage/deviceinbox.py
index 2fa0a218b9..68116b0394 100644
--- a/synapse/storage/deviceinbox.py
+++ b/synapse/storage/deviceinbox.py
@@ -85,7 +85,7 @@ class DeviceInboxStore(SQLBaseStore):
         defer.returnValue(self._device_inbox_id_gen.get_current_token())
 
     def get_new_messages_for_device(
-        self, user_id, device_id, current_stream_id, limit=100
+        self, user_id, device_id, last_stream_id, current_stream_id, limit=100
     ):
         """
         Args:
@@ -101,11 +101,13 @@ class DeviceInboxStore(SQLBaseStore):
             sql = (
                 "SELECT stream_id, message_json FROM device_inbox"
                 " WHERE user_id = ? AND device_id = ?"
-                " AND stream_id <= ?"
+                " AND ? < stream_id AND stream_id <= ?"
                 " ORDER BY stream_id ASC"
                 " LIMIT ?"
             )
-            txn.execute(sql, (user_id, device_id, current_stream_id, limit))
+            txn.execute(sql, (
+                user_id, device_id, last_stream_id, current_stream_id, limit
+            ))
             messages = []
             for row in txn.fetchall():
                 stream_pos = row[0]