|
|
|
@ -32,10 +32,10 @@ logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
|
class FederationClient(FederationBase): |
|
|
|
|
def __init__(self): |
|
|
|
|
self._fail_fetch_pdu_cache = None |
|
|
|
|
self._get_pdu_cache = None |
|
|
|
|
|
|
|
|
|
def start_pdu_fail_cache(self): |
|
|
|
|
self._fail_fetch_pdu_cache = ExpiringCache( |
|
|
|
|
def start_get_pdu_cache(self): |
|
|
|
|
self._get_pdu_cache = ExpiringCache( |
|
|
|
|
cache_name="get_pdu_cache", |
|
|
|
|
clock=self._clock, |
|
|
|
|
max_len=1000, |
|
|
|
@ -43,7 +43,7 @@ class FederationClient(FederationBase): |
|
|
|
|
reset_expiry_on_get=False, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
self._fail_fetch_pdu_cache.start() |
|
|
|
|
self._get_pdu_cache.start() |
|
|
|
|
|
|
|
|
|
@log_function |
|
|
|
|
def send_pdu(self, pdu, destinations): |
|
|
|
@ -175,8 +175,8 @@ class FederationClient(FederationBase): |
|
|
|
|
|
|
|
|
|
# TODO: Rate limit the number of times we try and get the same event. |
|
|
|
|
|
|
|
|
|
if self._fail_fetch_pdu_cache: |
|
|
|
|
e = self._fail_fetch_pdu_cache.get(event_id) |
|
|
|
|
if self._get_pdu_cache: |
|
|
|
|
e = self._get_pdu_cache.get(event_id) |
|
|
|
|
if e: |
|
|
|
|
defer.returnValue(e) |
|
|
|
|
|
|
|
|
@ -223,8 +223,8 @@ class FederationClient(FederationBase): |
|
|
|
|
) |
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
if self._fail_fetch_pdu_cache is not None: |
|
|
|
|
self._fail_fetch_pdu_cache[event_id] = pdu |
|
|
|
|
if self._get_pdu_cache is not None: |
|
|
|
|
self._get_pdu_cache[event_id] = pdu |
|
|
|
|
|
|
|
|
|
defer.returnValue(pdu) |
|
|
|
|
|
|
|
|
|