forked from MirrorHub/synapse
make notification of signatures work with workers
This commit is contained in:
parent
e39bc62b8a
commit
8ac766c44a
3 changed files with 17 additions and 2 deletions
|
@ -56,6 +56,7 @@ class SlavedDeviceStore(EndToEndKeyWorkerStore, DeviceWorkerStore, BaseSlavedSto
|
|||
|
||||
def _invalidate_caches_for_devices(self, token, user_id, destination):
|
||||
self._device_list_stream_cache.entity_has_changed(user_id, token)
|
||||
self._user_signature_stream_cache.entity_has_changed(user_id, token)
|
||||
|
||||
if destination:
|
||||
self._device_list_federation_stream_cache.entity_has_changed(
|
||||
|
|
|
@ -139,7 +139,10 @@ class DataStore(
|
|||
db_conn, "public_room_list_stream", "stream_id"
|
||||
)
|
||||
self._device_list_id_gen = StreamIdGenerator(
|
||||
db_conn, "device_lists_stream", "stream_id"
|
||||
db_conn,
|
||||
"device_lists_stream",
|
||||
"stream_id",
|
||||
extra_tables=[("user_signature_stream", "stream_id")],
|
||||
)
|
||||
self._cross_signing_id_gen = StreamIdGenerator(
|
||||
db_conn, "e2e_cross_signing_keys", "stream_id"
|
||||
|
|
|
@ -543,9 +543,20 @@ class DeviceWorkerStore(SQLBaseStore):
|
|||
LEFT JOIN device_lists_outbound_pokes USING (stream_id, user_id, device_id)
|
||||
WHERE ? < stream_id AND stream_id <= ?
|
||||
GROUP BY user_id, destination
|
||||
UNION
|
||||
SELECT MAX(stream_id) AS stream_id, from_user_id AS user_id, NULL AS destination
|
||||
FROM user_signature_stream
|
||||
WHERE ? < stream_id AND stream_id <= ?
|
||||
GROUP BY user_id
|
||||
"""
|
||||
return self._execute(
|
||||
"get_all_device_list_changes_for_remotes", None, sql, from_key, to_key
|
||||
"get_all_device_list_changes_for_remotes",
|
||||
None,
|
||||
sql,
|
||||
from_key,
|
||||
to_key,
|
||||
from_key,
|
||||
to_key,
|
||||
)
|
||||
|
||||
@cached(max_entries=10000)
|
||||
|
|
Loading…
Reference in a new issue