Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit b298de7

Browse files
authored
Stop using BaseHandler in FederationEventHandler (#10745)
It's now only used in a couple of places, so we can drop it altogether.
1 parent 40a1fdd commit b298de7

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

changelog.d/10744.misc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Move `kick_guest_users` into `RoomMemberHandler`.
1+
Clean up some of the federation event authentication code for clarity.

changelog.d/10745.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Clean up some of the federation event authentication code for clarity.

synapse/handlers/federation_event.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
from synapse.events import EventBase
5555
from synapse.events.snapshot import EventContext
5656
from synapse.federation.federation_client import InvalidResponseError
57-
from synapse.handlers._base import BaseHandler
5857
from synapse.logging.context import (
5958
make_deferred_yieldable,
6059
nested_logging_context,
@@ -117,16 +116,14 @@ class _NewEventInfo:
117116
claimed_auth_event_map: StateMap[EventBase]
118117

119118

120-
class FederationEventHandler(BaseHandler):
119+
class FederationEventHandler:
121120
"""Handles events that originated from federation.
122121
123122
Responsible for handing incoming events and passing them on to the rest
124123
of the homeserver (including auth and state conflict resolutions)
125124
"""
126125

127126
def __init__(self, hs: "HomeServer"):
128-
super().__init__(hs)
129-
130127
self.store = hs.get_datastore()
131128
self.storage = hs.get_storage()
132129
self.state_store = self.storage.state
@@ -137,11 +134,15 @@ def __init__(self, hs: "HomeServer"):
137134
self._message_handler = hs.get_message_handler()
138135
self.action_generator = hs.get_action_generator()
139136
self._state_resolution_handler = hs.get_state_resolution_handler()
137+
# avoid a circular dependency by deferring execution here
138+
self._get_room_member_handler = hs.get_room_member_handler
140139

141140
self.federation_client = hs.get_federation_client()
142141
self.third_party_event_rules = hs.get_third_party_event_rules()
142+
self._notifier = hs.get_notifier()
143143

144144
self.is_mine_id = hs.is_mine_id
145+
self._server_name = hs.hostname
145146
self._instance_name = hs.get_instance_name()
146147

147148
self.config = hs.config
@@ -222,7 +223,7 @@ async def on_receive_pdu(self, origin: str, pdu: EventBase) -> None:
222223
# Note that if we were never in the room then we would have already
223224
# dropped the event, since we wouldn't know the room version.
224225
is_in_room = await self._event_auth_handler.check_host_in_room(
225-
room_id, self.server_name
226+
room_id, self._server_name
226227
)
227228
if not is_in_room:
228229
logger.info(
@@ -435,7 +436,7 @@ async def backfill(
435436
server from invalid events (there is probably no point in trying to
436437
re-fetch invalid events from every other HS in the room.)
437438
"""
438-
if dest == self.server_name:
439+
if dest == self._server_name:
439440
raise SynapseError(400, "Can't backfill from self.")
440441

441442
events = await self.federation_client.backfill(
@@ -1030,7 +1031,7 @@ async def _handle_marker_event(self, origin: str, marker_event: EventBase):
10301031
room_creator = create_event.content.get(EventContentFields.ROOM_CREATOR)
10311032
if (
10321033
not room_version.msc2716_historical
1033-
or not self.hs.config.experimental.msc2716_enabled
1034+
or not self.config.experimental.msc2716_enabled
10341035
or marker_event.sender != room_creator
10351036
):
10361037
return
@@ -1349,7 +1350,7 @@ async def _maybe_kick_guest_users(self, event: EventBase) -> None:
13491350

13501351
current_state_map = await self.state_handler.get_current_state(event.room_id)
13511352
current_state = list(current_state_map.values())
1352-
await self.hs.get_room_member_handler().kick_guest_users(current_state)
1353+
await self._get_room_member_handler().kick_guest_users(current_state)
13531354

13541355
async def _check_for_soft_fail(
13551356
self,
@@ -1804,7 +1805,7 @@ async def _notify_persisted_event(
18041805
event_pos = PersistedEventPosition(
18051806
self._instance_name, event.internal_metadata.stream_ordering
18061807
)
1807-
self.notifier.on_new_room_event(
1808+
self._notifier.on_new_room_event(
18081809
event, event_pos, max_stream_token, extra_users=extra_users
18091810
)
18101811

0 commit comments

Comments
 (0)