summary refs log tree commit diff
path: root/synapse/federation
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2017-05-05 10:34:53 +0100
committerErik Johnston <erik@matrix.org>2017-05-05 10:34:53 +0100
commitdb7d0c31272954f01d89b2dbd653d54db0cbb040 (patch)
treefced1b5891bf1cbf0bbb2e3c2ffd6a9ab9a262ee /synapse/federation
parentMerge pull request #2147 from matrix-org/dbkr/http_request_propagate_error (diff)
downloadsynapse-db7d0c31272954f01d89b2dbd653d54db0cbb040.tar.xz
Always mark remotes as up if we receive a signed request from them
Diffstat (limited to 'synapse/federation')
-rw-r--r--synapse/federation/transport/server.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/synapse/federation/transport/server.py b/synapse/federation/transport/server.py
index c840da834c..828dcd01a7 100644
--- a/synapse/federation/transport/server.py
+++ b/synapse/federation/transport/server.py
@@ -79,6 +79,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
@@ -138,6 +139,12 @@ class Authenticator(object):
         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"]:
+            self.store.set_destination_retry_timings(origin, 0, 0)
+
         defer.returnValue(origin)