aboutsummaryrefslogtreecommitdiffstats
path: root/worker/mbox
diff options
context:
space:
mode:
authorMoritz Poldrack <git@moritz.sh>2022-07-31 15:15:27 +0200
committerRobin Jarry <robin@jarry.cc>2022-08-04 21:58:04 +0200
commit70bfcfef42578079f211d87cddc49519ee3503dc (patch)
treeae35c38e3980c73af2b43be10fe8cc9ece4f3f9a /worker/mbox
parent978d35d356e8752bdd272884df48a6289d88b40a (diff)
downloadaerc-70bfcfef42578079f211d87cddc49519ee3503dc.tar.gz
lint: work nicely with wrapped errors (errorlint)
Error wrapping as introduced in Go 1.13 adds some additional logic to use for comparing errors and adding information to it. Signed-off-by: Moritz Poldrack <moritz@poldrack.dev> Acked-by: Robin Jarry <robin@jarry.cc>
Diffstat (limited to 'worker/mbox')
-rw-r--r--worker/mbox/io.go3
-rw-r--r--worker/mbox/models.go2
-rw-r--r--worker/mbox/worker.go27
3 files changed, 17 insertions, 15 deletions
diff --git a/worker/mbox/io.go b/worker/mbox/io.go
index 38469160..67290482 100644
--- a/worker/mbox/io.go
+++ b/worker/mbox/io.go
@@ -1,6 +1,7 @@
package mboxer
import (
+ "errors"
"io"
"io/ioutil"
"time"
@@ -16,7 +17,7 @@ func Read(r io.Reader) ([]lib.RawMessage, error) {
messages := make([]lib.RawMessage, 0)
for {
msg, err := mbr.NextMessage()
- if err == io.EOF {
+ if errors.Is(err, io.EOF) {
break
} else if err != nil {
return nil, err
diff --git a/worker/mbox/models.go b/worker/mbox/models.go
index d98b14fd..849133c1 100644
--- a/worker/mbox/models.go
+++ b/worker/mbox/models.go
@@ -89,7 +89,7 @@ func (md *mailboxContainer) Copy(dest, src string, uids []uint32) error {
}
err = destmbox.Append(r, flags)
if err != nil {
- return fmt.Errorf("could not append data to mbox: %v", err)
+ return fmt.Errorf("could not append data to mbox: %w", err)
}
}
}
diff --git a/worker/mbox/worker.go b/worker/mbox/worker.go
index 6114870e..1e3ab982 100644
--- a/worker/mbox/worker.go
+++ b/worker/mbox/worker.go
@@ -2,6 +2,7 @@ package mboxer
import (
"bytes"
+ "errors"
"fmt"
"io/ioutil"
"net/url"
@@ -113,12 +114,12 @@ func (w *mboxWorker) handleMessage(msg types.WorkerMessage) error {
for _, uid := range w.folder.Uids() {
m, err := w.folder.Message(uid)
if err != nil {
- logging.Errorf("could not get message %v", err)
+ logging.Errorf("could not get message %w", err)
continue
}
info, err := lib.MessageInfo(m)
if err != nil {
- logging.Errorf("could not get message info %v", err)
+ logging.Errorf("could not get message info %w", err)
continue
}
infos = append(infos, info)
@@ -176,27 +177,27 @@ func (w *mboxWorker) handleMessage(msg types.WorkerMessage) error {
case *types.FetchMessageBodyPart:
m, err := w.folder.Message(msg.Uid)
if err != nil {
- logging.Errorf("could not get message %d: %v", msg.Uid, err)
+ logging.Errorf("could not get message %d: %w", msg.Uid, err)
reterr = err
break
}
contentReader, err := m.NewReader()
if err != nil {
- reterr = fmt.Errorf("could not get message reader: %v", err)
+ reterr = fmt.Errorf("could not get message reader: %w", err)
break
}
fullMsg, err := gomessage.Read(contentReader)
if err != nil {
- reterr = fmt.Errorf("could not read message: %v", err)
+ reterr = fmt.Errorf("could not read message: %w", err)
break
}
r, err := lib.FetchEntityPartReader(fullMsg, msg.Part)
if err != nil {
logging.Errorf(
- "could not get body part reader for message=%d, parts=%#v: %v",
+ "could not get body part reader for message=%d, parts=%#v: %w",
msg.Uid, msg.Part, err)
reterr = err
break
@@ -214,18 +215,18 @@ func (w *mboxWorker) handleMessage(msg types.WorkerMessage) error {
for _, uid := range msg.Uids {
m, err := w.folder.Message(uid)
if err != nil {
- logging.Errorf("could not get message for uid %d: %v", uid, err)
+ logging.Errorf("could not get message for uid %d: %w", uid, err)
continue
}
r, err := m.NewReader()
if err != nil {
- logging.Errorf("could not get message reader: %v", err)
+ logging.Errorf("could not get message reader: %w", err)
continue
}
defer r.Close()
b, err := ioutil.ReadAll(r)
if err != nil {
- logging.Errorf("could not get message reader: %v", err)
+ logging.Errorf("could not get message reader: %w", err)
continue
}
w.worker.PostMessage(&types.FullMessage{
@@ -260,16 +261,16 @@ func (w *mboxWorker) handleMessage(msg types.WorkerMessage) error {
for _, uid := range msg.Uids {
m, err := w.folder.Message(uid)
if err != nil {
- logging.Errorf("could not get message: %v", err)
+ logging.Errorf("could not get message: %w", err)
continue
}
if err := m.(*message).SetFlag(msg.Flag, msg.Enable); err != nil {
- logging.Errorf("could change flag %v to %t on message: %v", msg.Flag, msg.Enable, err)
+ logging.Errorf("could change flag %v to %t on message: %w", msg.Flag, msg.Enable, err)
continue
}
info, err := lib.MessageInfo(m)
if err != nil {
- logging.Errorf("could not get message info: %v", err)
+ logging.Errorf("could not get message info: %w", err)
continue
}
@@ -365,7 +366,7 @@ func (w *mboxWorker) handleMessage(msg types.WorkerMessage) error {
func (w *mboxWorker) Run() {
for msg := range w.worker.Actions {
msg = w.worker.ProcessAction(msg)
- if err := w.handleMessage(msg); err == errUnsupported {
+ if err := w.handleMessage(msg); errors.Is(err, errUnsupported) {
w.worker.PostMessage(&types.Unsupported{
Message: types.RespondTo(msg),
}, nil)