mirror of
https://github.com/chatmail/core.git
synced 2026-04-20 06:56:29 +03:00
fix: Keep tombstones for two days before deleting (#3685)
This is a way to prevent redownloading locally deleted messages. Otherwise if a message is deleted quickly after sending and `bcc_self` is configured, the BCC copy is downloaded and appears as a new message as it happens for messages sent from another device.
This commit is contained in:
@@ -990,16 +990,19 @@ async fn maybe_add_from_param(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Removes from the database locally deleted messages that also don't
|
||||
/// Removes from the database stale locally deleted messages that also don't
|
||||
/// have a server UID.
|
||||
async fn prune_tombstones(sql: &Sql) -> Result<()> {
|
||||
// Keep tombstones for the last two days to prevent redownloading locally deleted messages.
|
||||
let timestamp_max = time().saturating_sub(2 * 24 * 3600);
|
||||
sql.execute(
|
||||
"DELETE FROM msgs
|
||||
WHERE chat_id=?
|
||||
AND timestamp<=?
|
||||
AND NOT EXISTS (
|
||||
SELECT * FROM imap WHERE msgs.rfc724_mid=rfc724_mid AND target!=''
|
||||
)",
|
||||
(DC_CHAT_ID_TRASH,),
|
||||
(DC_CHAT_ID_TRASH, timestamp_max),
|
||||
)
|
||||
.await?;
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user