make notification of signatures work with workers
This commit is contained in:
parent
e39bc62b8a
commit
8ac766c44a
|
@ -56,6 +56,7 @@ class SlavedDeviceStore(EndToEndKeyWorkerStore, DeviceWorkerStore, BaseSlavedSto
|
||||||
|
|
||||||
def _invalidate_caches_for_devices(self, token, user_id, destination):
|
def _invalidate_caches_for_devices(self, token, user_id, destination):
|
||||||
self._device_list_stream_cache.entity_has_changed(user_id, token)
|
self._device_list_stream_cache.entity_has_changed(user_id, token)
|
||||||
|
self._user_signature_stream_cache.entity_has_changed(user_id, token)
|
||||||
|
|
||||||
if destination:
|
if destination:
|
||||||
self._device_list_federation_stream_cache.entity_has_changed(
|
self._device_list_federation_stream_cache.entity_has_changed(
|
||||||
|
|
|
@ -139,7 +139,10 @@ class DataStore(
|
||||||
db_conn, "public_room_list_stream", "stream_id"
|
db_conn, "public_room_list_stream", "stream_id"
|
||||||
)
|
)
|
||||||
self._device_list_id_gen = StreamIdGenerator(
|
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(
|
self._cross_signing_id_gen = StreamIdGenerator(
|
||||||
db_conn, "e2e_cross_signing_keys", "stream_id"
|
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)
|
LEFT JOIN device_lists_outbound_pokes USING (stream_id, user_id, device_id)
|
||||||
WHERE ? < stream_id AND stream_id <= ?
|
WHERE ? < stream_id AND stream_id <= ?
|
||||||
GROUP BY user_id, destination
|
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(
|
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)
|
@cached(max_entries=10000)
|
||||||
|
|
Loading…
Reference in New Issue