From bf4abd309e4c5c4eb3a43017ed20e4a3cf85fee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Gia=20Phong?= Date: Thu, 20 Jan 2022 21:40:34 +0700 Subject: [PATCH] maildir,notmuch: pass in-memory message to callback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes piped full message (:pipe -m) being empty. Fixes: 904ffacb0e52 ("maildir,notmuch: avoid leaking open files") Signed-off-by: Nguyễn Gia Phong --- worker/maildir/worker.go | 8 +++++++- worker/notmuch/worker.go | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/worker/maildir/worker.go b/worker/maildir/worker.go index a671d73..2f75f12 100644 --- a/worker/maildir/worker.go +++ b/worker/maildir/worker.go @@ -1,9 +1,11 @@ package maildir import ( + "bytes" "errors" "fmt" "io" + "io/ioutil" "net/url" "os" "path/filepath" @@ -433,11 +435,15 @@ func (w *Worker) handleFetchFullMessages(msg *types.FetchFullMessages) error { return err } defer r.Close() + b, err := ioutil.ReadAll(r) + if err != nil { + return err + } w.worker.PostMessage(&types.FullMessage{ Message: types.RespondTo(msg), Content: &models.FullMessage{ Uid: uid, - Reader: r, + Reader: bytes.NewReader(b), }, }, nil) } diff --git a/worker/notmuch/worker.go b/worker/notmuch/worker.go index d95d6ba..36ed2c8 100644 --- a/worker/notmuch/worker.go +++ b/worker/notmuch/worker.go @@ -5,7 +5,9 @@ package notmuch import ( "bufio" + "bytes" "fmt" + "io/ioutil" "net/url" "os" "path/filepath" @@ -368,11 +370,15 @@ func (w *worker) handleFetchFullMessages(msg *types.FetchFullMessages) error { return err } defer r.Close() + b, err := ioutil.ReadAll(r) + if err != nil { + return err + } w.w.PostMessage(&types.FullMessage{ Message: types.RespondTo(msg), Content: &models.FullMessage{ Uid: uid, - Reader: r, + Reader: bytes.NewReader(b), }, }, nil) }