From df818bc2b8f4fb4ad959c9dde9721dd9cbf76495 Mon Sep 17 00:00:00 2001 From: James Houlahan Date: Fri, 28 Oct 2022 11:47:56 +0200 Subject: [PATCH] Other: Update UID validity in vault when necessary --- internal/user/imap.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/internal/user/imap.go b/internal/user/imap.go index f57b16e7..8c7a15b0 100644 --- a/internal/user/imap.go +++ b/internal/user/imap.go @@ -355,12 +355,21 @@ func (conn *imapConnector) GetUpdates() <-chan imap.Update { // GetUIDValidity returns the default UID validity for this user. func (conn *imapConnector) GetUIDValidity() imap.UID { + if validity, ok := conn.vault.GetUIDValidity(conn.addrID); ok { + return validity + } + + // Initialize to 1. + if err := conn.vault.SetUIDValidity(conn.addrID, imap.UID(1)); err != nil { + conn.log.WithError(err).Error("Failed to set UID validity") + } + return imap.UID(1) } // SetUIDValidity sets the default UID validity for this user. -func (conn *imapConnector) SetUIDValidity(uidValidity imap.UID) error { - return nil +func (conn *imapConnector) SetUIDValidity(validity imap.UID) error { + return conn.vault.SetUIDValidity(conn.addrID, validity) } // Close the connector will no longer be used and all resources should be closed/released.