From d280bcbbebc81b4c4ba9f76aacabc03ae34f2846 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Thu, 13 Aug 2020 15:21:23 +1000 Subject: [PATCH] Geary.ImapDB: Use RFC822 strings for Message-Id values in the database Ensure `RFC822.MessageID.to_rfc822_string` is used when storing and searching for message ids in the database. --- src/engine/imap-db/imap-db-account.vala | 4 ++-- src/engine/imap-db/imap-db-message-row.vala | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/engine/imap-db/imap-db-account.vala b/src/engine/imap-db/imap-db-account.vala index 602b4c2d..99244dc2 100644 --- a/src/engine/imap-db/imap-db-account.vala +++ b/src/engine/imap-db/imap-db-account.vala @@ -494,8 +494,8 @@ private class Geary.ImapDB.Account : BaseObject { yield db.exec_transaction_async(Db.TransactionType.RO, (cx) => { Db.Statement stmt = cx.prepare("SELECT id FROM MessageTable WHERE message_id = ? OR in_reply_to = ?"); - stmt.bind_string(0, message_id.value); - stmt.bind_string(1, message_id.value); + stmt.bind_string(0, message_id.to_rfc822_string()); + stmt.bind_string(1, message_id.to_rfc822_string()); Db.Result result = stmt.exec(cancellable); while (!result.finished) { diff --git a/src/engine/imap-db/imap-db-message-row.vala b/src/engine/imap-db/imap-db-message-row.vala index 29dbd0b6..43e6c57e 100644 --- a/src/engine/imap-db/imap-db-message-row.vala +++ b/src/engine/imap-db/imap-db-message-row.vala @@ -209,7 +209,7 @@ private class Geary.ImapDB.MessageRow { } if (email.fields.is_all_set(Geary.Email.Field.REFERENCES)) { - message_id = (email.message_id != null) ? email.message_id.value : null; + message_id = (email.message_id != null) ? email.message_id.to_rfc822_string() : null; in_reply_to = (email.in_reply_to != null) ? email.in_reply_to.to_rfc822_string() : null; references = (email.references != null) ? email.references.to_rfc822_string() : null;