From c5f7af9118a1426c5865c63f3c25498e0e4fb2c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Fri, 10 Apr 2020 09:58:13 +0200 Subject: [PATCH] crypto: Recreate group sessions if they are expired. --- src/crypto/machine.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/crypto/machine.rs b/src/crypto/machine.rs index 1bdf2bf2..c00c4248 100644 --- a/src/crypto/machine.rs +++ b/src/crypto/machine.rs @@ -935,6 +935,18 @@ impl OlmMachine { } let megolm_session = self.outbound_group_session.get(room_id).unwrap(); + + let megolm_session = if megolm_session.expired() { + self.create_outbound_group_session(room_id).await?; + self.outbound_group_session.get(room_id).unwrap() + } else { + megolm_session + }; + + if megolm_session.shared() { + panic!("Session is already shared"); + } + let session_id = megolm_session.session_id().to_owned(); megolm_session.mark_as_shared();