Tidy up list.go
This commit is contained in:
parent
d603bbe2ce
commit
25f21b55bd
1 changed files with 15 additions and 22 deletions
|
@ -14,10 +14,14 @@ func (imapw *IMAPWorker) handleListDirectories(msg *types.ListDirectories) {
|
|||
done <- imapw.client.List("", "*", mailboxes)
|
||||
}()
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case err := <-done:
|
||||
if err != 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,
|
||||
|
@ -26,16 +30,5 @@ func (imapw *IMAPWorker) handleListDirectories(msg *types.ListDirectories) {
|
|||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue