perf: flush OMEMO store only after encrypting for all recipients (upstream cbe6dac4)

This commit is contained in:
2026-03-31 19:48:20 +03:00
parent e8b8a8d52e
commit 6831c4a192

View File

@@ -598,9 +598,13 @@ omemo_sessions_keyfile(void)
return omemo_ctx.sessions.keyfile;
}
static gboolean omemo_sessions_keyfile_save_disable = FALSE;
void
omemo_sessions_keyfile_save(void)
{
if (omemo_sessions_keyfile_save_disable)
return;
save_keyfile(&omemo_ctx.sessions);
}
@@ -718,6 +722,8 @@ omemo_on_message_send(ProfWin* win, const char* const message, gboolean request_
unsigned char* key_tag;
size_t ciphertext_len, tag_len;
omemo_sessions_keyfile_save_disable = TRUE;
ciphertext_len = strlen(message);
ciphertext = malloc(ciphertext_len);
tag_len = AES128_GCM_TAG_LENGTH;
@@ -882,6 +888,8 @@ omemo_on_message_send(ProfWin* win, const char* const message, gboolean request_
}
out:
omemo_sessions_keyfile_save_disable = FALSE;
omemo_sessions_keyfile_save();
g_list_free_full(keys, (GDestroyNotify)omemo_key_free);
free(ciphertext);
gcry_free(key);