Merge branch 'develop' of github.com:matrix-org/synapse into erikj/state_storage
This commit is contained in:
commit
bb36b93f71
|
@ -85,6 +85,12 @@ class RoomMemberHandler(BaseHandler):
|
||||||
prev_event_ids=prev_event_ids,
|
prev_event_ids=prev_event_ids,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Check if this event matches the previous membership event for the user.
|
||||||
|
duplicate = yield msg_handler.deduplicate_state_event(event, context)
|
||||||
|
if duplicate is not None:
|
||||||
|
# Discard the new event since this membership change is a no-op.
|
||||||
|
return
|
||||||
|
|
||||||
yield msg_handler.handle_new_client_event(
|
yield msg_handler.handle_new_client_event(
|
||||||
requester,
|
requester,
|
||||||
event,
|
event,
|
||||||
|
|
|
@ -576,7 +576,7 @@ class SyncHandler(object):
|
||||||
|
|
||||||
logger.debug("Getting messages up to %d", 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(
|
messages, stream_id = yield self.store.get_new_messages_for_device(
|
||||||
user_id, device_id, now_token.to_device_key
|
user_id, device_id, since_stream_id, now_token.to_device_key
|
||||||
)
|
)
|
||||||
logger.debug("Got messages up to %d: %r", stream_id, messages)
|
logger.debug("Got messages up to %d: %r", stream_id, messages)
|
||||||
sync_result_builder.now_token = now_token.copy_and_replace(
|
sync_result_builder.now_token = now_token.copy_and_replace(
|
||||||
|
|
|
@ -85,7 +85,7 @@ class DeviceInboxStore(SQLBaseStore):
|
||||||
defer.returnValue(self._device_inbox_id_gen.get_current_token())
|
defer.returnValue(self._device_inbox_id_gen.get_current_token())
|
||||||
|
|
||||||
def get_new_messages_for_device(
|
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:
|
Args:
|
||||||
|
@ -101,11 +101,13 @@ class DeviceInboxStore(SQLBaseStore):
|
||||||
sql = (
|
sql = (
|
||||||
"SELECT stream_id, message_json FROM device_inbox"
|
"SELECT stream_id, message_json FROM device_inbox"
|
||||||
" WHERE user_id = ? AND device_id = ?"
|
" WHERE user_id = ? AND device_id = ?"
|
||||||
" AND stream_id <= ?"
|
" AND ? < stream_id AND stream_id <= ?"
|
||||||
" ORDER BY stream_id ASC"
|
" ORDER BY stream_id ASC"
|
||||||
" LIMIT ?"
|
" 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 = []
|
messages = []
|
||||||
for row in txn.fetchall():
|
for row in txn.fetchall():
|
||||||
stream_pos = row[0]
|
stream_pos = row[0]
|
||||||
|
|
Loading…
Reference in New Issue