From a1489f527572cec5e258068b4ee1d983df540489 Mon Sep 17 00:00:00 2001 From: jesopo Date: Mon, 23 May 2022 14:02:12 +0000 Subject: [PATCH] 'drop_federated_event' -> 'should_drop_federated_event' Signed-off-by: jesopo --- docs/modules/spam_checker_callbacks.md | 4 ++-- docs/spam_checker.md | 4 ++-- synapse/events/spamcheck.py | 20 +++++++++++++------- synapse/federation/federation_server.py | 4 ++-- synapse/module_api/__init__.py | 8 +++++--- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/docs/modules/spam_checker_callbacks.md b/docs/modules/spam_checker_callbacks.md index 4b3c0655098e..27c5a0ed5cfe 100644 --- a/docs/modules/spam_checker_callbacks.md +++ b/docs/modules/spam_checker_callbacks.md @@ -249,12 +249,12 @@ callback returns `False`, Synapse falls through to the next one. The value of th callback that does not return `False` will be used. If this happens, Synapse will not call any of the subsequent implementations of this callback. -### `drop_federated_event` +### `should_drop_federated_event` _First introduced in Synapse v1.60.0_ ```python -async def drop_federated_event(event: "synapse.events.EventBase") -> bool +async def should_drop_federated_event(event: "synapse.events.EventBase") -> bool ``` Called when checking whether a remote server can federate an event with us. **Returning diff --git a/docs/spam_checker.md b/docs/spam_checker.md index ffaa5395eb6c..df2d280f31d6 100644 --- a/docs/spam_checker.md +++ b/docs/spam_checker.md @@ -32,7 +32,7 @@ well as some specific methods: * `check_username_for_spam` * `check_registration_for_spam` * `check_media_file_for_spam` -* `drop_federated_event` +* `should_drop_federated_event` The details of each of these methods (as well as their inputs and outputs) are documented in the `synapse.events.spamcheck.SpamChecker` class. @@ -89,7 +89,7 @@ class ExampleSpamChecker: return False # allow all media - async def drop_federated_event(self, foo): + async def should_drop_federated_event(self, foo): return False # don't silently drop any inbound federated events ``` diff --git a/synapse/events/spamcheck.py b/synapse/events/spamcheck.py index 1a241631520b..298465ac783f 100644 --- a/synapse/events/spamcheck.py +++ b/synapse/events/spamcheck.py @@ -44,7 +44,7 @@ ["synapse.events.EventBase"], Awaitable[Union[bool, str]], ] -DROP_FEDERATED_EVENT_CALLBACK = Callable[ +SHOULD_DROP_FEDERATED_EVENT_CALLBACK = Callable[ ["synapse.events.EventBase"], Awaitable[Union[bool, str]], ] @@ -173,7 +173,9 @@ def __init__(self, hs: "synapse.server.HomeServer") -> None: self.clock = hs.get_clock() self._check_event_for_spam_callbacks: List[CHECK_EVENT_FOR_SPAM_CALLBACK] = [] - self._drop_federated_event_callbacks: List[DROP_FEDERATED_EVENT_CALLBACK] = [] + self._should_drop_federated_event_callbacks: List[ + SHOULD_DROP_FEDERATED_EVENT_CALLBACK + ] = [] self._user_may_join_room_callbacks: List[USER_MAY_JOIN_ROOM_CALLBACK] = [] self._user_may_invite_callbacks: List[USER_MAY_INVITE_CALLBACK] = [] self._user_may_send_3pid_invite_callbacks: List[ @@ -197,7 +199,9 @@ def __init__(self, hs: "synapse.server.HomeServer") -> None: def register_callbacks( self, check_event_for_spam: Optional[CHECK_EVENT_FOR_SPAM_CALLBACK] = None, - drop_federated_event: Optional[DROP_FEDERATED_EVENT_CALLBACK] = None, + should_drop_federated_event: Optional[ + SHOULD_DROP_FEDERATED_EVENT_CALLBACK + ] = None, user_may_join_room: Optional[USER_MAY_JOIN_ROOM_CALLBACK] = None, user_may_invite: Optional[USER_MAY_INVITE_CALLBACK] = None, user_may_send_3pid_invite: Optional[USER_MAY_SEND_3PID_INVITE_CALLBACK] = None, @@ -216,8 +220,10 @@ def register_callbacks( if check_event_for_spam is not None: self._check_event_for_spam_callbacks.append(check_event_for_spam) - if drop_federated_event is not None: - self._drop_federated_event_callbacks.append(drop_federated_event) + if should_drop_federated_event is not None: + self._should_drop_federated_event_callbacks.append( + should_drop_federated_event + ) if user_may_join_room is not None: self._user_may_join_room_callbacks.append(user_may_join_room) @@ -278,7 +284,7 @@ async def check_event_for_spam( return False - async def drop_federated_event( + async def should_drop_federated_event( self, event: "synapse.events.EventBase" ) -> Union[bool, str]: """Checks if a given federated event is considered "spammy" by this @@ -293,7 +299,7 @@ async def drop_federated_event( Returns: True if the event should be silently dropped """ - for callback in self._drop_federated_event_callbacks: + for callback in self._should_drop_federated_event_callbacks: with Measure( self.clock, "{}.{}".format(callback.__module__, callback.__qualname__) ): diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py index 9a6b487f4ae4..8b9717459d55 100644 --- a/synapse/federation/federation_server.py +++ b/synapse/federation/federation_server.py @@ -1020,7 +1020,7 @@ async def _handle_received_pdu(self, origin: str, pdu: EventBase) -> None: except SynapseError as e: raise FederationError("ERROR", e.code, e.msg, affected=pdu.event_id) - if await self._spam_checker.drop_federated_event(pdu): + if await self._spam_checker.should_drop_federated_event(pdu): logger.warning( "Unstaged federated event contains spam, dropping %s", pdu.event_id ) @@ -1129,7 +1129,7 @@ async def _process_incoming_pdus_in_room_inner( origin, event = next - if await self._spam_checker.drop_federated_event(event): + if await self._spam_checker.should_drop_federated_event(event): logger.warning( "Staged federated event contains spam, dropping %s", event.event_id, diff --git a/synapse/module_api/__init__.py b/synapse/module_api/__init__.py index 993342e7aba1..c4f661bb9382 100644 --- a/synapse/module_api/__init__.py +++ b/synapse/module_api/__init__.py @@ -47,7 +47,7 @@ CHECK_MEDIA_FILE_FOR_SPAM_CALLBACK, CHECK_REGISTRATION_FOR_SPAM_CALLBACK, CHECK_USERNAME_FOR_SPAM_CALLBACK, - DROP_FEDERATED_EVENT_CALLBACK, + SHOULD_DROP_FEDERATED_EVENT_CALLBACK, USER_MAY_CREATE_ROOM_ALIAS_CALLBACK, USER_MAY_CREATE_ROOM_CALLBACK, USER_MAY_INVITE_CALLBACK, @@ -235,7 +235,9 @@ def register_spam_checker_callbacks( self, *, check_event_for_spam: Optional[CHECK_EVENT_FOR_SPAM_CALLBACK] = None, - drop_federated_event: Optional[DROP_FEDERATED_EVENT_CALLBACK] = None, + should_drop_federated_event: Optional[ + SHOULD_DROP_FEDERATED_EVENT_CALLBACK + ] = None, user_may_join_room: Optional[USER_MAY_JOIN_ROOM_CALLBACK] = None, user_may_invite: Optional[USER_MAY_INVITE_CALLBACK] = None, user_may_send_3pid_invite: Optional[USER_MAY_SEND_3PID_INVITE_CALLBACK] = None, @@ -256,7 +258,7 @@ def register_spam_checker_callbacks( """ return self._spam_checker.register_callbacks( check_event_for_spam=check_event_for_spam, - drop_federated_event=drop_federated_event, + should_drop_federated_event=should_drop_federated_event, user_may_join_room=user_may_join_room, user_may_invite=user_may_invite, user_may_send_3pid_invite=user_may_send_3pid_invite,