diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-02-02 08:44:30 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-02-02 08:44:30 -0500 |
commit | 25f21b55bd3179258f02d5498ecc969ff1ad820a (patch) | |
tree | 8d5e84596f3e651bc9ab4649cd755c87771efcea /worker/imap | |
parent | d603bbe2ce4adebfc9ec0bb708d814fd9152676c (diff) |
Tidy up list.go
Diffstat (limited to 'worker/imap')
-rw-r--r-- | worker/imap/list.go | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/worker/imap/list.go b/worker/imap/list.go index 2f5e5b4..eff3d49 100644 --- a/worker/imap/list.go +++ b/worker/imap/list.go @@ -14,28 +14,21 @@ func (imapw *IMAPWorker) handleListDirectories(msg *types.ListDirectories) { done <- imapw.client.List("", "*", mailboxes) }() go func() { - for { - select { - case err := <-done: - if err != nil { - imapw.worker.PostMessage(&types.Error{ - Message: types.RespondTo(msg), - Error: err, - }, nil) - } else { - imapw.worker.PostMessage( - &types.Done{types.RespondTo(msg)}, nil) - } - return - case mbox := <-mailboxes: - if mbox != nil { - imapw.worker.PostMessage(&types.Directory{ - Message: types.RespondTo(msg), - Name: mbox.Name, - Attributes: mbox.Attributes, - }, nil) - } - } + for mbox := range mailboxes { + imapw.worker.PostMessage(&types.Directory{ + Message: types.RespondTo(msg), + Name: mbox.Name, + Attributes: mbox.Attributes, + }, nil) + } + if err := <-done; err != nil { + imapw.worker.PostMessage(&types.Error{ + Message: types.RespondTo(msg), + Error: err, + }, nil) + } else { + imapw.worker.PostMessage( + &types.Done{types.RespondTo(msg)}, nil) } }() } |