From efc532bfb2ce5b4900dddb68ba615619f08e6fa3 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Mon, 14 Oct 2024 17:23:15 +0300 Subject: [PATCH] hicli/processEvent: save session request manually if decryption queue is not provided --- hicli/sync.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hicli/sync.go b/hicli/sync.go index 1b6ec613..210cd1ac 100644 --- a/hicli/sync.go +++ b/hicli/sync.go @@ -370,7 +370,18 @@ func (h *HiClient) processEvent(ctx context.Context, evt *event.Event, decryptio } minIndex, _ := crypto.ParseMegolmMessageIndex(evt.Content.AsEncrypted().MegolmCiphertext) req.MinIndex = min(uint32(minIndex), req.MinIndex) - decryptionQueue[dbEvt.MegolmSessionID] = req + if decryptionQueue != nil { + decryptionQueue[dbEvt.MegolmSessionID] = req + } else { + err = h.DB.SessionRequest.Put(ctx, req) + if err != nil { + zerolog.Ctx(ctx).Err(err). + Stringer("session_id", dbEvt.MegolmSessionID). + Msg("Failed to save session request") + } else { + h.WakeupRequestQueue() + } + } } return dbEvt, err }