From 8a92216ce6885c88b41522dbc5903daa051dafd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20C=20McCord?= Date: Sun, 1 Oct 2023 22:10:24 -0400 Subject: [PATCH] assemble all readers before access --- server/server.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/server.go b/server/server.go index 797bb8a..62ef674 100644 --- a/server/server.go +++ b/server/server.go @@ -187,6 +187,8 @@ func (session *Session) Data(r io.Reader) error { session.log.Debug("receiving DATA") caster := readcaster.New(r) + msgReader := caster.NewReader() + rspamReader := caster.NewReader() wg := new(sync.WaitGroup) @@ -196,7 +198,7 @@ func (session *Session) Data(r io.Reader) error { go func() { defer wg.Done() - n, err := msg.ReadFrom(caster.NewReader()) + n, err := msg.ReadFrom(msgReader) if err != nil { session.log.Error("failed to read message data into message", zap.Error(err)) @@ -208,7 +210,7 @@ func (session *Session) Data(r io.Reader) error { } }() - _, action, err := session.rspam.BodyReadFrom(caster.NewReader()) + _, action, err := session.rspam.BodyReadFrom(rspamReader) if err != nil { session.log.Error("rspamd failed to process message body", zap.Error(err))