diff options
author | David Baker <dbkr@users.noreply.github.com> | 2018-11-14 07:55:48 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-14 07:55:48 +0000 |
commit | 0869566ad36ac942b323485fc0e1a8a20a747953 (patch) | |
tree | 13a82204f82af90737e425d377c675ee2f9dd659 /synapse/storage/e2e_room_keys.py | |
parent | Merge pull request #4166 from matrix-org/erikj/drop_unknown_events (diff) | |
parent | Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backup_versions_a... (diff) | |
download | synapse-0869566ad36ac942b323485fc0e1a8a20a747953.tar.xz |
Merge pull request #4113 from matrix-org/dbkr/e2e_backup_versions_are_numbers
Make e2e backup versions numeric in the DB
Diffstat (limited to 'synapse/storage/e2e_room_keys.py')
-rw-r--r-- | synapse/storage/e2e_room_keys.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/synapse/storage/e2e_room_keys.py b/synapse/storage/e2e_room_keys.py index f25ded2295..16b7f005aa 100644 --- a/synapse/storage/e2e_room_keys.py +++ b/synapse/storage/e2e_room_keys.py @@ -118,6 +118,11 @@ class EndToEndRoomKeyStore(SQLBaseStore): these room keys. """ + try: + version = int(version) + except ValueError: + defer.returnValue({'rooms': {}}) + keyvalues = { "user_id": user_id, "version": version, @@ -212,14 +217,23 @@ class EndToEndRoomKeyStore(SQLBaseStore): Raises: StoreError: with code 404 if there are no e2e_room_keys_versions present Returns: - A deferred dict giving the info metadata for this backup version + A deferred dict giving the info metadata for this backup version, with + fields including: + version(str) + algorithm(str) + auth_data(object): opaque dict supplied by the client """ def _get_e2e_room_keys_version_info_txn(txn): if version is None: this_version = self._get_current_version(txn, user_id) else: - this_version = version + try: + this_version = int(version) + except ValueError: + # Our versions are all ints so if we can't convert it to an integer, + # it isn't there. + raise StoreError(404, "No row found") result = self._simple_select_one_txn( txn, @@ -236,6 +250,7 @@ class EndToEndRoomKeyStore(SQLBaseStore): ), ) result["auth_data"] = json.loads(result["auth_data"]) + result["version"] = str(result["version"]) return result return self.runInteraction( |