mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Merge pull request #395 from matrix-org/erikj/perspective_limiter
Don't limit connections to perspective servers
This commit is contained in:
commit
8c3af5bc62
@ -381,28 +381,24 @@ class Keyring(object):
|
|||||||
def get_server_verify_key_v2_indirect(self, server_names_and_key_ids,
|
def get_server_verify_key_v2_indirect(self, server_names_and_key_ids,
|
||||||
perspective_name,
|
perspective_name,
|
||||||
perspective_keys):
|
perspective_keys):
|
||||||
limiter = yield get_retry_limiter(
|
# TODO(mark): Set the minimum_valid_until_ts to that needed by
|
||||||
perspective_name, self.clock, self.store
|
# the events being validated or the current time if validating
|
||||||
)
|
# an incoming request.
|
||||||
|
query_response = yield self.client.post_json(
|
||||||
with limiter:
|
destination=perspective_name,
|
||||||
# TODO(mark): Set the minimum_valid_until_ts to that needed by
|
path=b"/_matrix/key/v2/query",
|
||||||
# the events being validated or the current time if validating
|
data={
|
||||||
# an incoming request.
|
u"server_keys": {
|
||||||
query_response = yield self.client.post_json(
|
server_name: {
|
||||||
destination=perspective_name,
|
key_id: {
|
||||||
path=b"/_matrix/key/v2/query",
|
u"minimum_valid_until_ts": 0
|
||||||
data={
|
} for key_id in key_ids
|
||||||
u"server_keys": {
|
|
||||||
server_name: {
|
|
||||||
key_id: {
|
|
||||||
u"minimum_valid_until_ts": 0
|
|
||||||
} for key_id in key_ids
|
|
||||||
}
|
|
||||||
for server_name, key_ids in server_names_and_key_ids
|
|
||||||
}
|
}
|
||||||
},
|
for server_name, key_ids in server_names_and_key_ids
|
||||||
)
|
}
|
||||||
|
},
|
||||||
|
long_retries=True,
|
||||||
|
)
|
||||||
|
|
||||||
keys = {}
|
keys = {}
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ class MatrixFederationHttpClient(object):
|
|||||||
defer.returnValue(json.loads(body))
|
defer.returnValue(json.loads(body))
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def post_json(self, destination, path, data={}):
|
def post_json(self, destination, path, data={}, long_retries=True):
|
||||||
""" Sends the specifed json data using POST
|
""" Sends the specifed json data using POST
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -311,6 +311,8 @@ class MatrixFederationHttpClient(object):
|
|||||||
path (str): The HTTP path.
|
path (str): The HTTP path.
|
||||||
data (dict): A dict containing the data that will be used as
|
data (dict): A dict containing the data that will be used as
|
||||||
the request body. This will be encoded as JSON.
|
the request body. This will be encoded as JSON.
|
||||||
|
long_retries (bool): A boolean that indicates whether we should
|
||||||
|
retry for a short or long time.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Deferred: Succeeds when we get a 2xx HTTP response. The result
|
Deferred: Succeeds when we get a 2xx HTTP response. The result
|
||||||
@ -330,6 +332,7 @@ class MatrixFederationHttpClient(object):
|
|||||||
path.encode("ascii"),
|
path.encode("ascii"),
|
||||||
body_callback=body_callback,
|
body_callback=body_callback,
|
||||||
headers_dict={"Content-Type": ["application/json"]},
|
headers_dict={"Content-Type": ["application/json"]},
|
||||||
|
long_retries=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
if 200 <= response.code < 300:
|
if 200 <= response.code < 300:
|
||||||
|
Loading…
Reference in New Issue
Block a user