mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-15 14:56:42 +00:00
Do not ignore errors
This commit is contained in:
@ -164,7 +164,9 @@ func (ib *imapBackend) Login(_ *imap.ConnInfo, username, password string) (goIMA
|
||||
|
||||
if err := imapUser.user.CheckBridgeLogin(password); err != nil {
|
||||
log.WithError(err).Error("Could not check bridge password")
|
||||
_ = imapUser.Logout()
|
||||
if err := imapUser.Logout(); err != nil {
|
||||
log.WithError(err).Warn("Could not logout user after unsuccessful login check")
|
||||
}
|
||||
// Apple Mail sometimes generates a lot of requests very quickly.
|
||||
// It's therefore good to have a timeout after a bad login so that we can slow
|
||||
// those requests down a little bit.
|
||||
|
||||
@ -80,7 +80,7 @@ func (ib *imapBackend) removeFromCache(userID, label, toRemove string) {
|
||||
|
||||
func (ib *imapBackend) getCacheList(userID, label string) (list string) {
|
||||
if err := ib.loadIMAPCache(); err != nil {
|
||||
log.Warn("Could not load cache: ", err)
|
||||
log.WithError(err).Warn("Could not load cache")
|
||||
}
|
||||
|
||||
ib.imapCacheLock.Lock()
|
||||
@ -97,7 +97,9 @@ func (ib *imapBackend) getCacheList(userID, label string) (list string) {
|
||||
|
||||
ib.imapCacheLock.Unlock()
|
||||
|
||||
_ = ib.saveIMAPCache()
|
||||
if err := ib.saveIMAPCache(); err != nil {
|
||||
log.WithError(err).Warn("Could not save cache")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@ -77,19 +77,29 @@ func (im *imapMailbox) setFlags(messageIDs, flags []string) error {
|
||||
}
|
||||
|
||||
if seen {
|
||||
_ = im.storeMailbox.MarkMessagesRead(messageIDs)
|
||||
if err := im.storeMailbox.MarkMessagesRead(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
_ = im.storeMailbox.MarkMessagesUnread(messageIDs)
|
||||
if err := im.storeMailbox.MarkMessagesUnread(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if flagged {
|
||||
_ = im.storeMailbox.MarkMessagesStarred(messageIDs)
|
||||
if err := im.storeMailbox.MarkMessagesStarred(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
_ = im.storeMailbox.MarkMessagesUnstarred(messageIDs)
|
||||
if err := im.storeMailbox.MarkMessagesUnstarred(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if deleted {
|
||||
_ = im.storeMailbox.DeleteMessages(messageIDs)
|
||||
if err := im.storeMailbox.DeleteMessages(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
spamMailbox, err := im.storeAddress.GetMailbox("Spam")
|
||||
@ -97,9 +107,13 @@ func (im *imapMailbox) setFlags(messageIDs, flags []string) error {
|
||||
return err
|
||||
}
|
||||
if spam {
|
||||
_ = spamMailbox.LabelMessages(messageIDs)
|
||||
if err := spamMailbox.LabelMessages(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
_ = spamMailbox.UnlabelMessages(messageIDs)
|
||||
if err := spamMailbox.UnlabelMessages(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
@ -111,22 +125,32 @@ func (im *imapMailbox) addOrRemoveFlags(operation imap.FlagsOp, messageIDs, flag
|
||||
case imap.SeenFlag:
|
||||
switch operation {
|
||||
case imap.AddFlags:
|
||||
_ = im.storeMailbox.MarkMessagesRead(messageIDs)
|
||||
if err := im.storeMailbox.MarkMessagesRead(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
case imap.RemoveFlags:
|
||||
_ = im.storeMailbox.MarkMessagesUnread(messageIDs)
|
||||
if err := im.storeMailbox.MarkMessagesUnread(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
case imap.FlaggedFlag:
|
||||
switch operation {
|
||||
case imap.AddFlags:
|
||||
_ = im.storeMailbox.MarkMessagesStarred(messageIDs)
|
||||
if err := im.storeMailbox.MarkMessagesStarred(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
case imap.RemoveFlags:
|
||||
_ = im.storeMailbox.MarkMessagesUnstarred(messageIDs)
|
||||
if err := im.storeMailbox.MarkMessagesUnstarred(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
case imap.DeletedFlag:
|
||||
if operation == imap.RemoveFlags {
|
||||
break // Nothing to do, no message has the \Deleted flag.
|
||||
}
|
||||
_ = im.storeMailbox.DeleteMessages(messageIDs)
|
||||
if err := im.storeMailbox.DeleteMessages(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
case imap.AnsweredFlag, imap.DraftFlag, imap.RecentFlag:
|
||||
// Not supported.
|
||||
case message.AppleMailJunkFlag, message.ThunderbirdJunkFlag:
|
||||
@ -140,9 +164,13 @@ func (im *imapMailbox) addOrRemoveFlags(operation imap.FlagsOp, messageIDs, flag
|
||||
// No label removal is necessary because Spam and Inbox are both exclusive labels so the backend
|
||||
// will automatically take care of label removal.
|
||||
case imap.AddFlags:
|
||||
_ = storeMailbox.LabelMessages(messageIDs)
|
||||
if err := storeMailbox.LabelMessages(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
case imap.RemoveFlags:
|
||||
_ = storeMailbox.UnlabelMessages(messageIDs)
|
||||
if err := storeMailbox.UnlabelMessages(messageIDs); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user