From bbcb4314917cc00b1931deeb73b1728f8817a6b2 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Tue, 25 Feb 2020 18:56:21 +0300 Subject: fix auth module data losing --- pkg/server/queue/queue.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'pkg/server/queue') diff --git a/pkg/server/queue/queue.go b/pkg/server/queue/queue.go index 979fa33..4b69e3a 100644 --- a/pkg/server/queue/queue.go +++ b/pkg/server/queue/queue.go @@ -37,6 +37,30 @@ func (r *reader) Read(p []byte) (int, error) { return n, nil } +func (r *reader) WriteTo(w io.Writer) (int64, error) { + if writer, ok := w.(*writer); ok { + if len(r.b) > 0 { + writer.q <- r.b + } + + return 0, Copy(r.q, writer.q) + } + + if len(r.b) > 0 { + if _, err := w.Write(r.b); err != nil { + return 0, err + } + } + + for b := range r.q { + if _, err := w.Write(b); err != nil { + return 0, err + } + } + + return 0, nil +} + func (q Q) Writer() io.Writer { return &writer{q: q} } -- cgit v1.2.3-70-g09d2