diff options
author | Ben Burwell <ben@benburwell.com> | 2019-10-12 22:17:29 -0400 |
---|---|---|
committer | Ben Burwell <ben@benburwell.com> | 2019-10-12 22:17:29 -0400 |
commit | 12269c757d9ffcf93ba23a39c8e12cd222c5ae82 (patch) | |
tree | cf8f21f72b98355e42a4e9da04d8dbf98f8465b5 /worker/maildir/worker.go | |
parent | 287bf609554c5b0e9d82f28e89f6ca988b8fd452 (diff) |
Add threading support for maildirthreading
Diffstat (limited to 'worker/maildir/worker.go')
-rw-r--r-- | worker/maildir/worker.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/worker/maildir/worker.go b/worker/maildir/worker.go index 1df4e09..7bd7cbd 100644 --- a/worker/maildir/worker.go +++ b/worker/maildir/worker.go @@ -170,6 +170,8 @@ func (w *Worker) handleMessage(msg types.WorkerMessage) error { return w.handleOpenDirectory(msg) case *types.FetchDirectoryContents: return w.handleFetchDirectoryContents(msg) + case *types.FetchDirectoryThreaded: + return w.handleDirectoryThreaded(msg) case *types.CreateDirectory: return w.handleCreateDirectory(msg) case *types.FetchMessageHeaders: @@ -291,6 +293,19 @@ func (w *Worker) handleFetchDirectoryContents( return nil } +func (w *Worker) handleDirectoryThreaded(msg *types.FetchDirectoryThreaded) error { + threads, err := w.c.ScanThreads(*w.selected) + if err != nil { + w.worker.Logger.Printf("error scanning threads: %v", err) + return err + } + w.worker.PostMessage(&types.DirectoryThreaded{ + Message: types.RespondTo(msg), + Threads: threads, + }, nil) + return nil +} + func (w *Worker) sort(uids []uint32, criteria []*types.SortCriterion) ([]uint32, error) { if len(criteria) == 0 { return uids, nil |