Bug fix
This commit is contained in:
parent
d382b084d2
commit
4d258bb395
1 changed files with 16 additions and 9 deletions
|
|
@ -61,15 +61,22 @@ class CustomMemoryStateStore(MemoryStateStore):
|
||||||
|
|
||||||
|
|
||||||
class CustomMemoryCryptoStore(MemoryCryptoStore):
|
class CustomMemoryCryptoStore(MemoryCryptoStore):
|
||||||
async def put_cross_signing_key(self, user_id: UserID, usage: str, key) -> None:
|
def __init__(self, *args, **kwargs):
|
||||||
"""Fixes the mautrix MemoryCryptoStore AttributeError when updating cross-signing keys."""
|
super().__init__(*args, **kwargs)
|
||||||
try:
|
if not hasattr(self, "_cross_signing_keys"):
|
||||||
await super().put_cross_signing_key(user_id, usage, key)
|
self._cross_signing_keys = {}
|
||||||
except AttributeError:
|
|
||||||
for attr_val in self.__dict__.values():
|
async def put_cross_signing_key(self, user_id: UserID, usage, key) -> None:
|
||||||
if isinstance(attr_val, dict):
|
usage_str = usage.value if hasattr(usage, "value") else str(usage)
|
||||||
attr_val[(user_id, usage)] = key
|
if user_id not in self._cross_signing_keys:
|
||||||
attr_val[user_id] = key
|
self._cross_signing_keys[user_id] = {}
|
||||||
|
self._cross_signing_keys[user_id][usage_str] = key
|
||||||
|
self._cross_signing_keys[user_id][usage] = key
|
||||||
|
|
||||||
|
async def get_cross_signing_key(self, user_id: UserID, usage):
|
||||||
|
usage_str = usage.value if hasattr(usage, "value") else str(usage)
|
||||||
|
user_dict = self._cross_signing_keys.get(user_id, {})
|
||||||
|
return user_dict.get(usage_str) or user_dict.get(usage)
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue