summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorRichard van der Hoff <github@rvanderhoff.org.uk>2016-08-03 17:10:41 +0100
committerGitHub <noreply@github.com>2016-08-03 17:10:41 +0100
commit3364d96c6ba1396c5d7fb10f0e26630842a50759 (patch)
treedd0070e0880562b2627cb132816b619663cc86e7 /synapse
parentMerge branch 'rav/null_default_device_displayname' into develop (diff)
parentkeys/query: return all users which were asked for (diff)
downloadsynapse-3364d96c6ba1396c5d7fb10f0e26630842a50759.tar.xz
Merge pull request #977 from matrix-org/rav/return_all_devices
keys/query: return all users which were asked for
Diffstat (limited to 'synapse')
-rw-r--r--synapse/handlers/e2e_keys.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/synapse/handlers/e2e_keys.py b/synapse/handlers/e2e_keys.py
index 1312cdf5ab..950fc927b1 100644
--- a/synapse/handlers/e2e_keys.py
+++ b/synapse/handlers/e2e_keys.py
@@ -99,6 +99,7 @@ class E2eKeysHandler(object):
         """
         local_query = []
 
+        result_dict = {}
         for user_id, device_ids in query.items():
             if not self.is_mine_id(user_id):
                 logger.warning("Request for keys for non-local user %s",
@@ -111,15 +112,17 @@ class E2eKeysHandler(object):
                 for device_id in device_ids:
                     local_query.append((user_id, device_id))
 
+            # make sure that each queried user appears in the result dict
+            result_dict[user_id] = {}
+
         results = yield self.store.get_e2e_device_keys(local_query)
 
         # un-jsonify the results
-        json_result = collections.defaultdict(dict)
         for user_id, device_keys in results.items():
             for device_id, json_bytes in device_keys.items():
-                json_result[user_id][device_id] = json.loads(json_bytes)
+                result_dict[user_id][device_id] = json.loads(json_bytes)
 
-        defer.returnValue(json_result)
+        defer.returnValue(result_dict)
 
     @defer.inlineCallbacks
     def on_federation_query_client_keys(self, query_body):