aboutsummaryrefslogtreecommitdiff
path: root/internal/imap
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.eu>2021-05-10 15:09:43 +0200
committerRené 'Necoro' Neumann <necoro@necoro.eu>2021-05-10 15:09:43 +0200
commitc9a3ba964784512b739699254b79be7aa9acc994 (patch)
treeda5ec7ffae3f0a4161af590107206d856844052e /internal/imap
parent7a661884ff633cd3d9215a285fdfd6dc98a6225d (diff)
downloadfeed2imap-go-c9a3ba964784512b739699254b79be7aa9acc994.tar.gz
feed2imap-go-c9a3ba964784512b739699254b79be7aa9acc994.tar.bz2
feed2imap-go-c9a3ba964784512b739699254b79be7aa9acc994.zip
#47: Exhaust messages to avoid deadlock
Diffstat (limited to '')
-rw-r--r--internal/imap/connection.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/internal/imap/connection.go b/internal/imap/connection.go
index 213171e..3d537ea 100644
--- a/internal/imap/connection.go
+++ b/internal/imap/connection.go
@@ -170,7 +170,14 @@ func (conn *connection) fetchFlags(uid uint32) ([]string, error) {
done <- conn.c.UidFetch(seqSet, fetchItem, messages)
}()
- msg := <-messages
+ var msg *imap.Message
+ for m := range messages {
+ if msg == nil {
+ msg = m
+ } else {
+ panic(fmt.Sprintf("Duplicate message for uid %d. Found: %s(%d) and %s(%d)", uid, msg.Envelope.MessageId, msg.SeqNum, m.Envelope.MessageId, m.SeqNum))
+ }
+ }
err := <-done
if err != nil {
d>1-1/+1 2008-01-18 r651@Devoty: necoro | 2008-01-18 02:41:51 +0100Necoro3-393/+513 2008-01-18 r643@Devoty: necoro | 2008-01-16 18:55:49 +0100Necoro14-249/+525 2008-01-14 r634@Devoty: necoro | 2008-01-14 23:48:24 +0100Necoro3-1/+4 2008-01-14 r632@Devoty: necoro | 2008-01-14 23:44:52 +0100Necoro3-175/+181 2008-01-14(no commit message)Necoro10-758/+1014 2008-01-14 r621@Devoty: necoro | 2008-01-14 20:21:40 +0100Necoro2-21/+61 2008-01-14 r618@Devoty: necoro | 2008-01-14 20:19:05 +0100Necoro2-35/+57 2008-01-14 r617@Devoty: necoro | 2008-01-14 19:12:59 +0100Necoro2-10/+10 2008-01-14 r609@Devoty: necoro | 2008-01-14 17:04:38 +0100Necoro9-394/+477 2008-01-14 r605@Devoty: necoro | 2008-01-14 11:43:34 +0100Necoro2-26/+129 2008-01-14 r603@Devoty: necoro | 2008-01-14 11:30:26 +0100Necoro4-26/+38 2008-01-11 r598@Devoty: necoro | 2008-01-10 16:36:29 +0100Necoro4-10/+50 2008-01-11 r597@Devoty: necoro | 2008-01-10 14:12:35 +0100Necoro1-3/+3 2008-01-10 r595@Devoty: necoro | 2008-01-10 04:04:15 +0100Necoro1-52/+3 2008-01-09 r586@Devoty: necoro | 2008-01-09 14:54:18 +0100Necoro1-1/+1 2007-12-06 r577@Devoty: necoro | 2007-12-06 20:37:36 +0100Necoro1-1/+1 2007-12-06 r572@Devoty: necoro | 2007-11-28 08:48:15 +0100Necoro1-0/+1 2007-11-27 r570@Devoty: necoro | 2007-11-27 02:08:21 +0100Necoro3-84/+108