olm: Create a new olm account only after login.
That way we can be sure to have a valid device ID.
This commit is contained in:
parent
b309be8a98
commit
357c76edcc
2 changed files with 20 additions and 8 deletions
|
@ -86,6 +86,10 @@ class MatrixLoginEvent(MatrixEvent):
|
|||
prefix=W.prefix("network"), user=self.user_id)
|
||||
|
||||
W.prnt(self.server.server_buffer, message)
|
||||
|
||||
if not self.server.olm:
|
||||
self.server.create_olm()
|
||||
|
||||
self.server.sync()
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -138,20 +138,28 @@ class MatrixServer:
|
|||
try:
|
||||
self.olm = Olm.from_session_dir(self)
|
||||
except FileNotFoundError:
|
||||
message = ("{prefix}matrix: Creating new Olm identity for {user}"
|
||||
" on {server} for device {device}.").format(
|
||||
prefix=W.prefix("network"),
|
||||
user=self.user,
|
||||
server=self.name,
|
||||
device=self.device_id)
|
||||
W.prnt("", message)
|
||||
self.olm = Olm(self)
|
||||
pass
|
||||
except EncryptionError as error:
|
||||
message = ("{prefix}matrix: Error loading Olm"
|
||||
"account: {error}.").format(
|
||||
prefix=W.prefix("error"), error=error)
|
||||
W.prnt("", message)
|
||||
|
||||
def create_olm(self):
|
||||
message = ("{prefix}matrix: Creating new Olm identity for "
|
||||
"{self_color}{user}{ncolor}"
|
||||
" on {server_color}{server}{ncolor} for device "
|
||||
"{device}.").format(
|
||||
prefix=W.prefix("network"),
|
||||
self_color=W.color("chat_nick_self"),
|
||||
ncolor=W.color("reset"),
|
||||
user=self.user_id,
|
||||
server_color=W.color("chat_server"),
|
||||
server=self.name,
|
||||
device=self.device_id)
|
||||
W.prnt(self.server_buffer, message)
|
||||
self.olm = Olm(self)
|
||||
|
||||
def _create_options(self, config_file):
|
||||
options = [
|
||||
Option('autoconnect', 'boolean', '', 0, 0, 'off',
|
||||
|
|
Loading…
Add table
Reference in a new issue