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

Always mark remotes as up if we receive a signed request from them #2190

Merged
merged 3 commits into from
May 5, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions synapse/federation/transport/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
)
from synapse.util.ratelimitutils import FederationRateLimiter
from synapse.util.versionstring import get_version_string
from synapse.util.logcontext import preserve_fn
from synapse.types import ThirdPartyInstanceID

import functools
Expand Down Expand Up @@ -79,6 +80,7 @@ class Authenticator(object):
def __init__(self, hs):
self.keyring = hs.get_keyring()
self.server_name = hs.hostname
self.store = hs.get_datastore()

# A method just so we can pass 'self' as the authenticator to the Servlets
@defer.inlineCallbacks
Expand Down Expand Up @@ -138,6 +140,13 @@ def strip_quotes(value):
logger.info("Request from %s", origin)
request.authenticated_entity = origin

# If we get a valid signed request from the other side, its probably
# alive
retry_timings = yield self.store.get_destination_retry_timings(origin)
if retry_timings and retry_timings["retry_last_ts"]:
logger.info("Marking origin %r as up", origin)
preserve_fn(self.store.set_destination_retry_timings)(origin, 0, 0)

defer.returnValue(origin)


Expand Down
7 changes: 0 additions & 7 deletions synapse/handlers/federation.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,13 +380,6 @@ def _process_received_pdu(self, origin, pdu, state, auth_chain):
affected=event.event_id,
)

# if we're receiving valid events from an origin,
# it's probably a good idea to mark it as not in retry-state
# for sending (although this is a bit of a leap)
retry_timings = yield self.store.get_destination_retry_timings(origin)
if retry_timings and retry_timings["retry_last_ts"]:
self.store.set_destination_retry_timings(origin, 0, 0)

room = yield self.store.get_room(event.room_id)

if not room:
Expand Down