diff options
author | Richard van der Hoff <richard@matrix.org> | 2019-04-08 15:25:51 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2019-04-08 22:36:18 +0100 |
commit | f88a9e632341e955cf211d0ef3377c0f2b0ecf03 (patch) | |
tree | a9f01cffe7729c101531fbf1dc57ea64b6498767 /synapse/crypto/keyring.py | |
parent | Remove unused server_tls_certificates functions (#5028) (diff) | |
download | synapse-f88a9e632341e955cf211d0ef3377c0f2b0ecf03.tar.xz |
Remove redundant merged_keys dict
There's no point in collecting a merged dict of keys: it is sufficient to consider just the new keys which have been fetched by the most recent key_fetch_fns.
Diffstat (limited to 'synapse/crypto/keyring.py')
-rw-r--r-- | synapse/crypto/keyring.py | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/synapse/crypto/keyring.py b/synapse/crypto/keyring.py index 04beededdc..ede120b2a6 100644 --- a/synapse/crypto/keyring.py +++ b/synapse/crypto/keyring.py @@ -275,10 +275,6 @@ class Keyring(object): @defer.inlineCallbacks def do_iterations(): with Measure(self.clock, "get_server_verify_keys"): - # dict[str, dict[str, VerifyKey]]: results so far. - # map server_name -> key_id -> VerifyKey - merged_results = {} - # dict[str, set(str)]: keys to fetch for each server missing_keys = {} for verify_request in verify_requests: @@ -288,21 +284,22 @@ class Keyring(object): for fn in key_fetch_fns: results = yield fn(missing_keys.items()) - merged_results.update(results) # We now need to figure out which verify requests we have keys # for and which we don't missing_keys = {} requests_missing_keys = [] for verify_request in verify_requests: - server_name = verify_request.server_name - result_keys = merged_results[server_name] - if verify_request.deferred.called: # We've already called this deferred, which probably # means that we've already found a key for it. continue + server_name = verify_request.server_name + + # see if any of the keys we got this time are sufficient to + # complete this VerifyKeyRequest. + result_keys = results.get(server_name, {}) for key_id in verify_request.key_ids: if key_id in result_keys: with PreserveLoggingContext(): |