consistently use store.CloseRemoveTempFile for closing and removing temp files

This commit is contained in:
Mechiel Lukkien 2025-03-01 08:43:53 +01:00
parent b822533df3
commit 3050baa15a
No known key found for this signature in database
2 changed files with 3 additions and 14 deletions

View File

@ -6,7 +6,6 @@ import (
"errors" "errors"
"fmt" "fmt"
"io" "io"
"log/slog"
"os" "os"
"path/filepath" "path/filepath"
"strconv" "strconv"
@ -270,11 +269,7 @@ func (mr *MaildirReader) Next() (*Message, *os.File, string, error) {
} }
defer func() { defer func() {
if f != nil { if f != nil {
name := f.Name() CloseRemoveTempFile(mr.log, f, "maildir temp message file")
err := f.Close()
mr.log.Check(err, "closing temporary message file after maildir read error")
err = os.Remove(name)
mr.log.Check(err, "removing temporary message file after maildir read error", slog.String("path", name))
} }
}() }()

View File

@ -385,7 +385,7 @@ func importMessages(ctx context.Context, log mlog.Log, token string, acc *store.
// For maildirs, we are likely to get a possible dovecot-keywords file after having // For maildirs, we are likely to get a possible dovecot-keywords file after having
// imported the messages. Once we see the keywords, we use them. But before that // imported the messages. Once we see the keywords, we use them. But before that
// time we remember which messages miss a keywords. Once the keywords become // time we remember which messages miss keywords. Once the keywords become
// available, we'll fix up the flags for the unknown messages // available, we'll fix up the flags for the unknown messages
mailboxKeywords := map[string]map[rune]string{} // Mailbox to 'a'-'z' to flag name. mailboxKeywords := map[string]map[rune]string{} // Mailbox to 'a'-'z' to flag name.
mailboxMissingKeywordMessages := map[string]map[int64]string{} // Mailbox to message id to string consisting of the unrecognized flags. mailboxMissingKeywordMessages := map[string]map[int64]string{} // Mailbox to message id to string consisting of the unrecognized flags.
@ -501,13 +501,7 @@ func importMessages(ctx context.Context, log mlog.Log, token string, acc *store.
} }
xdeliver := func(mb store.Mailbox, m *store.Message, f *os.File, pos string) { xdeliver := func(mb store.Mailbox, m *store.Message, f *os.File, pos string) {
defer func() { defer store.CloseRemoveTempFile(log, f, "message file for import")
name := f.Name()
err = f.Close()
log.Check(err, "closing temporary message file for delivery")
err := os.Remove(name)
log.Check(err, "removing temporary message file for delivery")
}()
m.MailboxID = mb.ID m.MailboxID = mb.ID
m.MailboxOrigID = mb.ID m.MailboxOrigID = mb.ID