mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-25 18:59:21 -05:00
Merge pull request #4521 from matrix-org/rav/fed_routing/cleanups
Tiny .well-known fixes
This commit is contained in:
commit
a79034aedf
1
changelog.d/4521.feature
Normal file
1
changelog.d/4521.feature
Normal file
@ -0,0 +1 @@
|
||||
Implement MSC1708 (.well-known routing for server-server federation)
|
@ -298,16 +298,18 @@ class MatrixFederationAgent(object):
|
||||
response = yield make_deferred_yieldable(
|
||||
self._well_known_agent.request(b"GET", uri),
|
||||
)
|
||||
body = yield make_deferred_yieldable(readBody(response))
|
||||
if response.code != 200:
|
||||
raise Exception("Non-200 response %s" % (response.code, ))
|
||||
except Exception as e:
|
||||
logger.info("Connection error fetching %s: %s", uri_str, e)
|
||||
self._well_known_cache.set(server_name, None, WELL_KNOWN_INVALID_CACHE_PERIOD)
|
||||
defer.returnValue(None)
|
||||
logger.info("Error fetching %s: %s", uri_str, e)
|
||||
|
||||
body = yield make_deferred_yieldable(readBody(response))
|
||||
# add some randomness to the TTL to avoid a stampeding herd every hour
|
||||
# after startup
|
||||
cache_period = WELL_KNOWN_INVALID_CACHE_PERIOD
|
||||
cache_period += random.uniform(0, WELL_KNOWN_DEFAULT_CACHE_PERIOD_JITTER)
|
||||
|
||||
if response.code != 200:
|
||||
logger.info("Error response %i from %s", response.code, uri_str)
|
||||
self._well_known_cache.set(server_name, None, WELL_KNOWN_INVALID_CACHE_PERIOD)
|
||||
self._well_known_cache.set(server_name, None, cache_period)
|
||||
defer.returnValue(None)
|
||||
|
||||
try:
|
||||
@ -328,8 +330,8 @@ class MatrixFederationAgent(object):
|
||||
)
|
||||
if cache_period is None:
|
||||
cache_period = WELL_KNOWN_DEFAULT_CACHE_PERIOD
|
||||
# add some randomness to the TTL to avoid a stampeding herd every hour after
|
||||
# startup
|
||||
# add some randomness to the TTL to avoid a stampeding herd every 24 hours
|
||||
# after startup
|
||||
cache_period += random.uniform(0, WELL_KNOWN_DEFAULT_CACHE_PERIOD_JITTER)
|
||||
else:
|
||||
cache_period = min(cache_period, WELL_KNOWN_MAX_CACHE_PERIOD)
|
||||
|
Loading…
Reference in New Issue
Block a user