diff --git a/synapse/federation/federation_base.py b/synapse/federation/federation_base.py
index 29fae716f5..3df975958d 100644
--- a/synapse/federation/federation_base.py
+++ b/synapse/federation/federation_base.py
@@ -51,7 +51,7 @@ class FederationBase:
self.server_name = hs.hostname
self.keyring = hs.get_keyring()
- self.spam_checker = hs.get_spam_checker()
+ self._spam_checker_module_callbacks = hs.get_module_api_callbacks().spam_checker
self.store = hs.get_datastores().main
self._clock = hs.get_clock()
self._storage_controllers = hs.get_storage_controllers()
@@ -137,9 +137,9 @@ class FederationBase:
)
return redacted_event
- spam_check = await self.spam_checker.check_event_for_spam(pdu)
+ spam_check = await self._spam_checker_module_callbacks.check_event_for_spam(pdu)
- if spam_check != self.spam_checker.NOT_SPAM:
+ if spam_check != self._spam_checker_module_callbacks.NOT_SPAM:
logger.warning("Event contains spam, soft-failing %s", pdu.event_id)
log_kv(
{
diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py
index 64e99292ec..d7740eb3b4 100644
--- a/synapse/federation/federation_server.py
+++ b/synapse/federation/federation_server.py
@@ -130,7 +130,7 @@ class FederationServer(FederationBase):
super().__init__(hs)
self.handler = hs.get_federation_handler()
- self._spam_checker = hs.get_spam_checker()
+ self._spam_checker_module_callbacks = hs.get_module_api_callbacks().spam_checker
self._federation_event_handler = hs.get_federation_event_handler()
self.state = hs.get_state_handler()
self._event_auth_handler = hs.get_event_auth_handler()
@@ -1129,7 +1129,7 @@ class FederationServer(FederationBase):
logger.warning("event id %s: %s", pdu.event_id, e)
raise FederationError("ERROR", 403, str(e), affected=pdu.event_id)
- if await self._spam_checker.should_drop_federated_event(pdu):
+ if await self._spam_checker_module_callbacks.should_drop_federated_event(pdu):
logger.warning(
"Unstaged federated event contains spam, dropping %s", pdu.event_id
)
@@ -1174,7 +1174,9 @@ class FederationServer(FederationBase):
origin, event = next
- if await self._spam_checker.should_drop_federated_event(event):
+ if await self._spam_checker_module_callbacks.should_drop_federated_event(
+ event
+ ):
logger.warning(
"Staged federated event contains spam, dropping %s",
event.event_id,
|