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

Commit

Permalink
'drop_federated_event' -> 'should_drop_federated_event'
Browse files Browse the repository at this point in the history
Signed-off-by: jesopo <github@lolnerd.net>
  • Loading branch information
jesopo committed May 23, 2022
1 parent 7b7d713 commit a1489f5
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 16 deletions.
4 changes: 2 additions & 2 deletions docs/modules/spam_checker_callbacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions docs/spam_checker.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
```

Expand Down
20 changes: 13 additions & 7 deletions synapse/events/spamcheck.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]],
]
Expand Down Expand Up @@ -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[
Expand All @@ -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,
Expand All @@ -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)
Expand Down Expand Up @@ -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
Expand All @@ -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__)
):
Expand Down
4 changes: 2 additions & 2 deletions synapse/federation/federation_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
Expand Down Expand Up @@ -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,
Expand Down
8 changes: 5 additions & 3 deletions synapse/module_api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down

0 comments on commit a1489f5

Please sign in to comment.