From 3b98439ecaab4707c2224d7912b3f4513c2af8b7 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <richard@matrix.org>
Date: Wed, 20 Sep 2017 01:32:42 +0100
Subject: [PATCH] Factor out _start_key_lookups

... to make it easier to see what's going on.
---
 synapse/crypto/keyring.py | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/synapse/crypto/keyring.py b/synapse/crypto/keyring.py
index 32b107b17d..105de2b58b 100644
--- a/synapse/crypto/keyring.py
+++ b/synapse/crypto/keyring.py
@@ -122,6 +122,23 @@ class Keyring(object):
 
             verify_requests.append(verify_request)
 
+        self._start_key_lookups(verify_requests)
+
+        # Pass those keys to handle_key_deferred so that the json object
+        # signatures can be verified
+        return [
+            preserve_context_over_fn(_handle_key_deferred, rq)
+            for rq in verify_requests
+        ]
+
+    def _start_key_lookups(self, verify_requests):
+        """Sets off the key fetches for each verify request
+
+        Once each fetch completes, verify_request.deferred will be resolved.
+
+        Args:
+            verify_requests (List[VerifyKeyRequest]):
+        """
         server_to_deferred = {
             rq.server_name: defer.Deferred()
             for rq in verify_requests
@@ -163,13 +180,6 @@ class Keyring(object):
                     remove_deferreds, server_name, verify_request,
                 )
 
-        # Pass those keys to handle_key_deferred so that the json object
-        # signatures can be verified
-        return [
-            preserve_context_over_fn(_handle_key_deferred, verify_request)
-            for verify_request in verify_requests
-        ]
-
     @defer.inlineCallbacks
     def wait_for_previous_lookups(self, server_names, server_to_deferred):
         """Waits for any previous key lookups for the given servers to finish.
-- 
GitLab