summary refs log tree commit diff
diff options
context:
space:
mode:
authorKegan Dougal <7190048+kegsay@users.noreply.github.com>2024-01-30 16:56:43 +0000
committerKegan Dougal <7190048+kegsay@users.noreply.github.com>2024-01-30 16:56:43 +0000
commit8e95932e01814cb2eb7465d2a6df547bdc849e98 (patch)
tree69f3cdb9df33f36b67ed7752a8294bf798a466df
parentLinting (diff)
downloadsynapse-kegan/to-device-on-join.tar.xz
-rw-r--r--synapse/handlers/device.py36
1 files changed, 22 insertions, 14 deletions
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py
index c6def74259..2e8f46c5e0 100644
--- a/synapse/handlers/device.py
+++ b/synapse/handlers/device.py
@@ -517,15 +517,19 @@ class DeviceHandler(DeviceWorkerHandler):
                     deltas_by_room.setdefault(delta.room_id, []).append(delta)
 
                 for room_id, deltas_for_room in deltas_by_room.items():
-                    newly_joined_local_users = await self._get_newly_joined_local_users(room_id, deltas_for_room)
+                    newly_joined_local_users = await self._get_newly_joined_local_users(
+                        room_id, deltas_for_room
+                    )
                     if not newly_joined_local_users:
                         continue
                     # if a local user newly joins a room, we want to broadcast their device lists to
                     # federated servers in that room, if we haven't already.
                     hosts = await self.store.get_current_hosts_in_room(room_id)
                     # filter out ourselves
-                    hosts = [h for h in hosts if not self.hs.is_mine_server_name(h)]
-                    if len(hosts) == 0:
+                    other_hosts = [
+                        h for h in hosts if not self.hs.is_mine_server_name(h)
+                    ]
+                    if len(other_hosts) == 0:
                         continue
                     # broadcast device lists for these users in the room
                     num_pokes = 0
@@ -539,29 +543,30 @@ class DeviceHandler(DeviceWorkerHandler):
                                 user_id=user_id,
                                 device_id=device_id,
                                 room_id=room_id,
-                                hosts=hosts,
+                                hosts=other_hosts,
                                 context=None,
                             )
                     logger.info(
-                        "Found %d hosts to send device list updates to for a new room join, " +
-                        "added %s device_list_outbound_pokes",
-                        len(hosts), num_pokes,
+                        "Found %d hosts to send device list updates to for a new room join, "
+                        + "added %s device_list_outbound_pokes",
+                        len(other_hosts),
+                        num_pokes,
                     )
 
                     # Notify things that device lists need to be sent out.
                     self.notifier.notify_replication()
                     await self.federation_sender.send_device_messages(
-                        hosts, immediate=False
+                        other_hosts, immediate=False
                     )
 
                 self._event_pos = max_pos
 
                 # Expose current event processing position to prometheus
-                synapse.metrics.event_processing_positions.labels("device").set(
-                    max_pos
-                )
+                synapse.metrics.event_processing_positions.labels("device").set(max_pos)
 
-    async def _get_newly_joined_local_users(self, room_id: str, deltas: List[StateDelta]) -> Optional[Set[str]]:
+    async def _get_newly_joined_local_users(
+        self, room_id: str, deltas: List[StateDelta]
+    ) -> Optional[Set[str]]:
         """Process current state deltas for the room to find new joins that need
         to be handled.
         """
@@ -570,7 +575,10 @@ class DeviceHandler(DeviceWorkerHandler):
         for delta in deltas:
             assert room_id == delta.room_id
             logger.debug(
-                "device.handling: %r %r, %s", delta.event_type, delta.state_key, delta.event_id
+                "device.handling: %r %r, %s",
+                delta.event_type,
+                delta.state_key,
+                delta.event_id,
             )
             # Drop any event that isn't a membership join
             if delta.event_type != EventTypes.Member:
@@ -600,7 +608,7 @@ class DeviceHandler(DeviceWorkerHandler):
 
         if not newly_joined_local_users:
             # If nobody has joined then there's nothing to do.
-            return
+            return None
         return newly_joined_local_users
 
     def _check_device_name_length(self, name: Optional[str]) -> None: